要怎么撤銷(xiāo)最后一次提交?有兩種方法可以撤消上次提交。
revert命令
revert命令將創(chuàng)建一個(gè)提交,該提交還原所針對(duì)的提交的更改。
可以使用它來(lái)恢復(fù)最后一次提交,如下所示:
git revert <commit to revert>
在圖像中,每個(gè)圓圈代表一次提交。
reset命令
還可以使用該reset命令撤消上次提交。
但要小心——它會(huì)改變提交歷史,所以你應(yīng)該很少使用它。
它會(huì)將 HEAD(工作分支)移動(dòng)到指定的提交,并在之后丟棄任何內(nèi)容:
git reset --soft HEAD~1
--soft選項(xiàng) 意味著您不會(huì)丟失 可能擁有的未提交的更改。
在圖像中,每個(gè)圓圈代表一次提交。
如果要重置為最后一次提交并刪除所有未暫存的更改,可以使用以下--hard選項(xiàng):
git reset --hard HEAD~1
這將撤消最新的提交,但也會(huì)撤消任何未提交的更改。
在圖像中,每個(gè)圓圈代表一次提交。
應(yīng)該使用reset還是revert?
reset只在被重置的提交, 存在于本地時(shí)才使用。
此命令會(huì)更改提交歷史記錄,并且可能會(huì)覆蓋遠(yuǎn)程團(tuán)隊(duì)成員所依賴(lài)的歷史記錄。
revert 而是創(chuàng)建一個(gè)新的提交來(lái)撤消更改,因此如果要恢復(fù)的提交已經(jīng)被推送到共享存儲(chǔ)庫(kù),最好使用revert,因?yàn)樗粫?huì)覆蓋提交歷史。