1.在github上建立测试项目并克隆到本地
2.本地中新建两个文本文件
3.将a.txt commit并push到远程仓库
执行 git add a.txt, git commit -m "a.txt", git push
4.将b.txt提交到本地仓库,不执行push
通过gitk命令查看提交历史如下:
情景:b.txt本来不想提交上去,但是不小心提交上去了,怎么办?
方法1:git reset head~1
方法2:指定回退到具体的提交版本ID
->使用 git log查看提交历史,如下:
->git reset 81375c780e076ed87f1f1d96c88664126aec01cd
最终结果如下:
通过gitk查看提交历史
本地项目变化
方法3:git revert head,用一个新提交来消除一个历史提交所做的任何修改。
最终结果如下:
通过gitk查看提交历史
本地项目变化
相信你通过gitk查看提交历史,就会发现revert和reset的不同了,reset是将head往后退而revert执行后head继续前行。
5.新建的a.txt和b.txt全都push到远程仓库中
a.txt和b.txt分别提交并push上去,结果如下:
通过gitk查看提交历史
远程仓库
(1).如果执行reset操作
执行 git reset head~1,结果如下:
然后执行 git pull,结果如下:
(2).如果执行revert操作
执行 git revert head, 结果如下:
然后执行 git pull, 结果如下:
但是远程仓库中还是有 b.txt这个文件的,通过git status查看结果如下:
通过git push 将刚才revert回滚修改的提交 push到远程仓库。最后,保持本地和远程的一致。
6.参考资料
git reset revert 回退回滚取消提交返回上一版本
git 撤销commit