想必大家在日常代碼管理中經常用到 git commit --amend 這條實用命令, 其可以用來修改最後一條提交的 commit message, 也可以追加新的修改。
但有時候不小心 amend 了錯誤的內容, 如何回退呢?
方法一:
git reset 撤銷到上一個提交, 再重新 git commit 一次。但如果工作區此時已經改的面目全非, 這時如果執行 git reset, 就很難分的清哪些內容屬於被撤銷的提交了。不過也不是無解,先git stash再git reset也可以解決。不過不太優雅。
方法二:
單次amend
如果只 amend 了一次, 那麼直接用 git reset HEAD@{1} 就可以撤銷這次 amend。
如果想撤銷到暫存區, 就用 git reset --soft HEAD@{1} .
如果想幹掉這個修改, 就用 git reset --hard HEAD@{1} .
多次amend
如果 amend 多次, 就參考 git reflog進行撤銷。
閱讀更多 半杯茶的小酒杯 的文章