git基操指南,提交回滚那些事~

784 阅读4分钟

这是我参与8月更文挑战的第10天,活动详情查看:8月更文挑战

本文介绍的内容都是git基操、着重于提交回滚那些事,助力代码提交,看完能保证提交代码这块顺畅进行😄😄😄

基础信息查看

  • 远程查看

    git remote show	// 查看主机名
    git remote -v 	// 查看关联远程连接
    
  • 账号信息

    git config user.email
    git config user.name
    

分支操作

  • 新建本地分支

    git checkout -b <分支名称> 	// 例如 git checkout -b shengjingyin
    
  • 新建远程分支

    git push <主机名> <本地分支名称>	// 创建的远程分支名称与本地分支一样
    
    git push <主机名> <本地分支名称>[:<远程分支名称>]	// 这样写,可以关联到不一样名称的远程分支,例如 git push origin dev3:ayin,我本地是dev3,但是我远程创建的却是ayin分支
    
  • 切换本地分支

    git checkout  <分支名称>	
    
  • 删除本地分支

    git branch -d  <分支名称>	
    
  • 删除远程分支

    git push <主机名> --delete <远程分支名称>
    
  • 分支状态

    git branch <-a> //  查看本地分支,加了`-a`参数就是查询本地+远程分支,带*号的是当前分支,
    

正常开发提交流程

从网上down了一个示意图下来,感觉比较齐全,涉及到工作区暂存区本地仓库远程仓库之间如何进行沟通(从右到左,我本意是想找个从左到右的,emm但是找不到,好难受啊😫)

git.png

1、工作区与暂存区之间的沟通

工作区提交到暂存区

正常提交时,如下三点所示:

  • 添加一个或多个有变更的文件到暂存区

    git add [file1] [file2] ...
    
  • 添加指定目录到暂存区,包括子目录

    git add [dir]
    
  • 添加当前目录下所有文件到暂存区

    git add .
    

暂存区返回到工作区

想让暂存区的内容返回到工作区,可用如下种方法:

  • 回退暂存区内指定文件

    git reset HEAD rainbow.txt start.txt
    
  • 回退暂存区内所有文件

    git reset HEAD *
    
  • 回退暂存区内某一类别文件

    git reset HEAD *.txt
    

2、暂存区与本地仓库之间的沟通

暂存区提交到本地仓库

  • 提交暂存区到本地仓库中

    git commit -m 'message'
    
  • 提交暂存区的指定文件到仓库区

    git commit [file1] [file2] -m [message]
    

本地仓库回退到工作区

已经将代码提交到本地仓库的代码,即已经进行 commit 操作,如果想撤销之前的修改,需要执行版本回退操作,回退后的文件会回到工作区,而不是暂存区。

  • 回退到上一个版本

     git reset HEAD^		// 上一个版本
     git reset HEAD^^	// 上上一个版本
     git reset HEAD^^^	// 上上上一个版本
     
     git reset <commit-id> 		// 回到指定版本
    
  • 回退到指定版本

     git log      // 查看提交记录,获取commit-id,下一步使用
     
     git reset <commit-id>   // 回到指定版本,需要上一步骤中的id
    

    tips:可以使用 git loggit reflog 命令来查看git的提交历史,获取commit-id

3、本地仓库与远程仓库之间的沟通

推送到远程仓库

  • 本地分支与远程分支已经建立联系

    git push
    
    git push -f	//  强制远端分支与本地分支一样,没事别搞这个,不然被骂了可别怪我😂
    
  • 本地分支与远程分支未建立联系

    这时候如果push,会提示以下信息,未建立远程关联的意思,人家已经把建立关联的代码都提示出来了,照着打就行

    image-20210809174344960.png

    git push --set-upstream origin dev		// 创建关联的同时,推送本地仓库代码到远程仓库关联分支(dev)
    

回退远程提交记录

有时候我们提交到远程了,但是觉得提交信息有误,或者提交了本地测试代码到远程上去了,这时候该怎么办呢?下面就来介绍一下怎么回退远程提交记录,分为两步骤:

我这里提供的方法不是唯一方法,如果有更好的方法,欢迎评论区回复,谢谢~

image-20210810101326410.png

  • 先回退本地仓库到指定版本

    git reset HEAD^		// 回退上一个版本,具体用哪个方式需要看你自己的需求
    git reset <commit-id> 	// 回到指定版本
    
  • 再继续强推送

    git push -f	// 值得注意的是:你必须清楚的知道 -f 的作用!!!
    
  • 效果:可以看到1分钟前的那条提交记录已经没有了

    image-20210810101445466.png

本章小结

本节主要介绍开发完代码,如何去创建分支、提交代码的一个整体流程,关于各种回退的方式我相信大佬们也还有其他的方式,我这提供的也就只是平常开发的一个正常操作,没什么奇淫巧计,如果你有更好的方式,欢迎评论区回复,以避免其他人中了我的圈套😂😂😂

下章节我将继续介绍git的一些进阶操作:例如如何解决代码合并冲突、临时储存代码等等~~