天天看點

git revert VS git reset

最近在網上搜尋git revert 和git reset 的用法對比,實際操作的時候,發現根本行不通,自己摸索了下,記錄下這篇文章。

git revert:回退某次送出,并重新送出,相當于代碼恢複修改前,但是伺服器上有兩次送出log;

git reset:回退某次送出,同時回退修改log,但是修改内容回退到本地暫存區,由使用者确定丢棄(checkout)或者重新送出。

假設目前有3個commit,git  log如下:

執行 git revert head~1之後,會提示送出資訊,送出後git  log如下:

執行完後,test2.c被删除了,運作git status,無任何變化。

執行 git reset head~1之後,再次看git  log,如下:

執行完後,commit3被删除了;但是test3.c還在本地緩存區,運作git  status,可以看見提示test3.c可以用git add包含該檔案。

若執行git reset --hard head~1,log為:

執行完後,test3.c也被删除了,檢視git  status,無任何變化。

文章完全屬于個人了解,使用git時間比較短,如有了解錯誤,歡迎指出!

繼續閱讀