Git-如何回滾代碼 revert和reset

1.git revert和git reset的區別

git revert 是撤銷某次操作,此次操作之前或之後的commit都會被保留
git reset 是撤銷某次提交,此次之後的修改都會被退回到暫存區

例子,有三個commit, git log:

commit3: #3  xxid_3
commit2: #2  xxid_2
commit1: #1  xxid_1

執行 git revert xxid_2之後:
commit2被撤銷了,但是commit1和commit3還存在

執行 git reset --soft xxid_2之後:
commit3被撤銷了,commit1和commit2還存在,commit3 出現在暫存區

執行 git reset --hard xxid_2之後:
commit3被撤銷了,commit1和commit2還存在,commit3徹底消失

2.git reset –soft/–mixed/–hard

git reset -soft :取消了commit  
git reset -mixed(默認) :取消了commit ,取消了add
git reset -hard :取消了commit ,取消了add,取消源文件修改
git reset –hard HEAD~3   會將最新的3次提交全部重置,就像沒有提交過一樣。
git reset –hard commit_xxid  回退到 commit_xxid版本
git push origin HEAD --force  然後推送到遠程倉庫

3.將原來多次的git提交記錄合併爲一個

通過git reset –soft commit_xxid的方法,可以將原來多次的git提交記錄合併爲一個。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章