git revert 引发冲突且未修复(不断显示(master|reverting))

git revert raises a conflict and it is not fixed (constantly shows (master|reverting))

这个问题已经asked before但是没有得到完整的回答,所以我再问一次。

当我试图恢复我的 git 提交历史中的一个提交时,发生了冲突,所以我试图通过手动编辑冲突文件来解决这个问题。我保存了文件(使用 vim)并返回 git bash。然后我尝试通过添加和提交编辑后的文件来完成恢复过程。但我仍然在我的提示中看到 (master|reverting) (user@123123 MINGW64 ~/Documents/library/Git/s1 (master|REVERTING))。我可以通过使用 git revert --abortgit revert --skip 摆脱 (master|reverting) (使用这两个命令忽略整个恢复过程)但是当我使用 git revert --continue 时没有任何反应。在此步骤中,当我 运行 git status、git 向我显示以下消息时:

On branch master
You are currently reverting commit bbcf9a4.
  (all conflicts fixed: run "git revert --continue")
  (use "git revert --skip" to skip this patch)
  (use "git revert --abort" to cancel the revert operation)

nothing to commit, working tree clean

我很好奇为什么这个 (master|reverting) 出现在第一位以及我如何才能完成我的还原过程。

我怀疑,在解决冲突后,您最终得到了一个空的阶段和一个干净的工作树。

换句话说,您通过将文件编辑回恢复前的状态来修复冲突。

git status 是否显示以下屏幕?

On branch master
You are currently reverting commit e768305.
  (all conflicts fixed: run "git revert --continue")
  (use "git revert --skip" to skip this patch)
  (use "git revert --abort" to cancel the revert operation)

nothing to commit, working tree clean

如果是这样,你的舞台是空的,你的工作树是干净的;在空的舞台上使用 git commit 什么都不做,使用 git revert --continue 也是如此(因为它在幕后进行了提交)。

您可以跳过还原(使用 git revert --skip,因为阶段是空的),或者使用 git commit --allow-empty 创建一个空提交,但这毫无意义。


要务实地阻止 Git 说出“正在恢复”(并停止处于“正在恢复”状态),请删除 .git/REVERT_HEAD 文件。