撤销 git commit --amend

围巾🧣 2021年10月29日 1,947次浏览

想必大家都知道 git commit --amend 这条实用命令, 其可以用来修改最后一条提交的 commit message, 也可以追加新的修改.
但有时候不小心 amend 了错误的内容, 如何回退呢?

首先使用 git reflog 命令查看操作记录:

image-20211018190035949

看到 amend 操作之前的最后一个操作就是 HEAD@{1}.
现在可以用 git reset 将当前分支的 HEAD 指向 HEAD@{1}, 即可达到撤销 amend 的目的:

# 保留修改的内容到暂存区
git reset --soft d0446efd9

# 丢弃 amend 的内容
git reset --hard d0446efd9

随即使用 git status 查看状态, 发现 amend 的内容已经被撤销 (到工作区) 了.