天天看點

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,如需轉載請自行聯系原作者