前提:在工作中常使用git amend commit用于追加一些小的变动, 然后再push到远程。但是有时候尴尬的发现,上次提交的已经被领导合入,无法再使用amend进行commit了,需要新commit一次。
但是本地已经修改了上次的commit!!!又不能用强制推送git push --force-with-lease。
适用于:使用git ament commit ,但是未推送到远程分支的情况, 以下是一个优雅的解决办法:
步骤 -- 本地操作:
(1)首先,执行git reflog,查看git记录,找到amend前那次提交的hash值。
(2)然后,执行git reset xxxxx,xxxx对应要恢复到状态的hash值。 这个时候就恢复到了上次commit的状态。
(3)这个时候,就可以创建一个新的commit,进行push。 优雅解决啦~
如果大家有什么更好的方法也可以评论区交流哦。