git revert引发冲突,并且不固定不断显示master | reverting

问题描述

这个问题是asked before,但尚未收到完整的答案,因此我再问一次。

当我尝试还原git提交历史记录中的一个提交时,发生了冲突,因此我尝试通过手动编辑有冲突的文件解决此问题。我保存了文件(使用vim),然后回到git bash。然后,我尝试通过添加并提交编辑后的文件来完成还原过程。但我仍然在提示符((master|reverting)中看到user@123123 MINGW64 ~/Documents/library/Git/s1 (master|REVERTING)。我可以使用(master|reverting)git revert --abort(使用这两个命令忽略整个还原过程)来摆脱git revert --skip,但是当我使用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说“ REVERTING”(停止)并停止处于“ reverting”(还原)状态,请删除.git/REVERT_HEAD文件。