Git常用操作

一、合并

使用 rebase 和 merge 的基本原则:

  1. 下游分支更新上游分支内容的时候使用 rebase
  2. 上游分支合并下游分支内容的时候使用 merge
  3. 更新当前分支的内容时一定要使用 --rebase 参数

例如现有上游分支 master,基于 master 分支拉出来一个开发分支 dev,在 dev 上开发了一段时间后要把 master 分支提交的新内容更新到 dev 分支,此时切换到 dev 分支,使用 git rebase master

等 dev 分支开发完成了之后,要合并到上游分支 master 上的时候,切换到 master 分支,使用 git merge dev

二、撤销

撤销commit一般用git reset ,语法如下:

git reset [ –mixed | –soft | –hard] [<commit ID>]
1.使用参数–mixed(默认参数),如git reset –mixed <commit ID>或git reset <commit ID>
撤销git commit,撤销git add,保留编辑器改动代码
2.使用参数–soft,如git reset –soft<commit ID>
撤销git commit,不撤销git add,保留编辑器改动代码
3.使用参数–hard,如git reset –hard <commit ID>——此方式非常暴力,全部撤销,慎用
撤销git commit,撤销git add,删除编辑器改动代码

撤销push

1. 执行  git log查看日志,获取需要回退的版本号 

2. 执行 git reset –-soft <版本号> ,如 git reset –soft 4f5e9a90edeadcc45d85f43bd861a837fa7ce4c7 ,重置至指定版本的提交,达到撤销提交的目的

然后执行 git log 查看

此时,已重置至指定版本的提交,log中已经没有了需要撤销的提交

3. 执行 git push origin 分支名 –-force ,强制提交当前版本号。

至此,撤销push提交完成。

撤销commit

1. 执行 git log 查看需要撤销的commit的前面一个提交版本的id;

2. 执行 git reset –hard commit_id ,该commit_id为需要撤销的commit的提交的前面一个提交的版本,即需要恢复到的提交的id,重置至指定版本的提交,达到撤销提交的目的

3. 执行 git log 查看,commit提交已撤销

撤销add

git reset HEAD 如果后面什么都不跟的话 就是上一次add 里面的全部撤销了
git reset HEAD XXX/XXX/XXX.java 就是对某个文件进行撤销了
git reset HEAD XXX/XXX/XXX/. 就是对某个文件夹进行撤销了