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到遠程倉庫。最后,保持本地和遠程的一致。