git revert和reset區別


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM