天天看点

git revert和reset区别

git revert和reset区别

 执行 git add a.txt, git commit -m "a.txt", git push

git revert和reset区别
git revert和reset区别

 通过gitk命令查看提交历史如下:

git revert和reset区别

情景:b.txt本来不想提交上去,但是不小心提交上去了,怎么办?

   方法1:git reset head~1

     方法2:指定回退到具体的提交版本ID

  ->使用 git log查看提交历史,如下:

git revert和reset区别

  ->git reset 81375c780e076ed87f1f1d96c88664126aec01cd

  最终结果如下:

git revert和reset区别

 通过gitk查看提交历史

git revert和reset区别

本地项目变化

  方法3:git revert head,用一个新提交来消除一个历史提交所做的任何修改。

git revert和reset区别

通过gitk查看提交历史

git revert和reset区别

  相信你通过gitk查看提交历史,就会发现revert和reset的不同了,reset是将head往后退而revert执行后head继续前行。

   a.txt和b.txt分别提交并push上去,结果如下:

git revert和reset区别
git revert和reset区别

远程仓库

  (1).如果执行reset操作

    执行 git reset head~1,结果如下:

  

git revert和reset区别

    然后执行 git pull,结果如下:

git revert和reset区别

  (2).如果执行revert操作

    执行 git revert head, 结果如下:

git revert和reset区别

    然后执行 git pull, 结果如下:

git revert和reset区别

    但是远程仓库中还是有 b.txt这个文件的,通过git status查看结果如下:

git revert和reset区别

    通过git push 将刚才revert回滚修改的提交 push到远程仓库。最后,保持本地和远程的一致。

本文转自 小眼儿 博客园博客,原文链接:http://www.cnblogs.com/hujunzheng/p/5645718.html,如需转载请自行联系原作者