Git使用經驗總結4-撤回上一次本地提交

這個問題的意義在於,Git提交代碼是先提交到本地,然後再推送到遠端。一些比較嚴格的Git倉庫會有一些代碼提交檢查,一旦檢查到問題就會禁止提交。那麼這個時候就尷尬了,本地已經提交了,但是遠端又推送不上去。基於當前版本作修改再提交也不一定能推送成功,因爲只要提交了,提交記錄就會被檢查,推送還是會被打回。

爲了解決這個問題,可以使用如下命令:

git reset --soft HEAD^

soft表示這是一個軟重置,會把Head指向前一個提交,但是保留本次的更改。另外,有軟就有硬:

git reset --hard HEAD^

硬重置除了會把Head指向前一個提交,還會將本地所作的修改丟棄,一定要謹慎使用,筆者反正是不會嘗試使用的,即使做好了備份。

除了使用HEAD^這樣的移動方式,還可以直接指定Git的提交ID(唯一SHA-1哈希值):

git reset --soft cc127537978af35e2f502da7e8d22e340ed810e5

最最後,如果還是不行,那就還是祭出“遠端覆蓋本地”大法(本系列博文提交過),先備份,再遠端覆蓋本地,最後修改提交推送。

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