卡在git revert上 - 与冲突有关

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了卡在git revert上 - 与冲突有关相关的知识,希望对你有一定的参考价值。

所以这些是我最近的3次提交

commit cb5f9f58885049c20ea7d75e3fcc120f61f6d9a1 commit bad20788aa8b72622182cf28195b4b4e518d44a3 commit eeb8a571e300b52cd0c200351872467c47a32214

我想还原bad207~commit(哦,具有讽刺意味),所以我运行:

git revert bad20788aa8b72622182cf28195b4b4e518d44a3

有一个冲突,bad207和cb5f触摸同一个文件:

You are currently reverting commit bad2078.
  (fix conflicts and run "git revert --continue")
  (use "git revert --abort" to cancel the revert operation)

所以我修复了冲突并运行:

git add conflicted_file

然后:

git revert --continue

哪些输出(用西班牙语表示,在分支主机上,您的分支用origin / master更新):

En la rama master
Su rama está actualizada con «origin/master».
You are currently reverting commit bad2078.

nothing to commit, working directory clean

然后我被卡住了,我无法推送任何东西,或提交任何东西,我仍处于恢复模式:

$ git push origin master
Everything up-to-date

$ git commit -a
En la rama master
Su rama está actualizada con «origin/master».
You are currently reverting commit bad2078.

nothing to commit, working directory clean

$ git status
En la rama master
Su rama está actualizada con «origin/master».
You are currently reverting commit bad2078.
  (todos los conflictos corregidos: ejecute «git revert --continue»)
  (use "git revert --abort" to cancel the revert operation)

$ git revert --continue
En la rama master
Su rama está actualizada con «origin/master».
You are currently reverting commit bad2078.

nothing to commit, working directory clean

什么都没有提交,工作目录干净,我错过了什么?

答案

解决冲突后,revert提交包含更改。

所以你无法继续,因为默认情况下git会阻止创建空提交。

您可以:

  1. 尝试--allow-empty param,但我不知道这对你有什么用。
  2. 通过运行git revert --abort取消创建还原提交。然后手动创建一个还原提交(只需手动进行更改)。
  3. 尝试将提交重新设置为还原为提交日志。最有可能你试图恢复的提交不是最新的。因此将其置于顶部将允许您创建一个没有任何冲突的还原。
  4. 像之前选项中的rebase一样,只是从分支历史中删除它。

最后两个选项会破坏分支历史记录,但如果其他人正在处理此分支,那么在重新定位/合并时可能会遇到问题。

以上是关于卡在git revert上 - 与冲突有关的主要内容,如果未能解决你的问题,请参考以下文章

git revert

git --- revert用法

git --- revert用法

git --- revert用法

git --- revert用法

为啥在这种特殊情况下 git revert 后我会发生冲突