撤銷git commit --amend的操作


場景:

我把兩個sh文件執行git commit --amen 追加到了最后一次提交,但是我的最后一次提交已經是merge的狀態了,我不想加在這條提交后面,但是這兩個sh的修改我還是要的,我想單獨做一個提交推到gerrit上。

執行git reflog看到如下:

[root@bogon build_scripts]# git reflog
e5e140f HEAD@{0}: commit (amend): 整理bat腳本的格式
b8e484f HEAD@{1}: pull: Fast-forward
bdd9e33 HEAD@{2}: reset: moving to HEAD~3
7cfb852 HEAD@{3}: pull: Merge made by the 'recursive' strategy.

看到最上面那條帶(amend)之前的最后一條:b8e484f HEAD@{1}: pull: Fast-forward             對應的操作就是HEAD@{1},如果提交還想要,就執行git reset --soft HEAD@{1}就可以撤銷掉最后的git commit --amend的操作,如下:

 

 然后再執行git commit 加描述,執行git push origin HEAD:refs/for/master推到gerrit的master分支上就可以了

 

 

另外,如果一個commit被amend了很多次,同樣可以采用git reset --soft HEAD@{n}的方式回退到任意一個提交。【可以使用git show 后接git reflog顯示的commit id 來查看修改是不是剛amend的修改。】

可以看出,不光是amend可以這樣,其它操作也可以采用這種方式撤銷掉。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM