Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git恢复时卡住--因冲突而中止_Git - Fatal编程技术网

git恢复时卡住--因冲突而中止

git恢复时卡住--因冲突而中止,git,Git,这是我最近的3次承诺 提交CB5F9F5885049C20EA7D75E3FCC120F61F6D9A1 提交bad20788aa8b72622182cf28195b4b4e518d44a3 提交EEB8A571E300B52CD00351872467C47A32214 我想还原bad207~commit(哦,讽刺),所以我运行: git revert bad20788aa8b72622182cf28195b4b4e518d44a3 存在冲突,bad207和cb5f接触同一文件: You ar

这是我最近的3次承诺

提交CB5F9F5885049C20EA7D75E3FCC120F61F6D9A1 提交bad20788aa8b72622182cf28195b4b4e518d44a3 提交EEB8A571E300B52CD00351872467C47A32214

我想还原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进行更新):

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

$ 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

无需提交,工作目录清理,我缺少什么?

解决冲突后,a
恢复
提交包含的更改

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

你可以:

  • 尝试
    ——允许空
    参数,但我看不出这对您有什么用处
  • 通过运行git revert--abort取消创建恢复提交。然后手动创建恢复提交(只需手动进行更改)
  • 尝试将提交重新设置为位于提交日志的顶部。您尝试恢复的提交很可能不是最新的。因此,将其放在顶部将允许您创建一个没有任何冲突的恢复
  • 与上一个选项中的重基类似,但只需将其从分支历史记录中删除即可

  • 最后两个选项会影响分支历史记录,因此如果其他人正在处理此分支,则在重定基/合并时可能会遇到问题。

    如果您的冲突解决文件看起来与head中的当前文件完全相同,则git认为您不会提交任何更改,因此无法继续还原

    如果您确实希望将此恢复提交添加到分支中,那么您可以用一种不重要的方式修改已解决冲突的文件,例如在注释中添加一个额外的空间,以诱使git允许您完成恢复提交


    但在现实中,如果您的冲突解决文件看起来与当前头部中的完全相同,那么您可能首先不需要执行git还原。你的脑袋已经是你想要的了。所以只要中止还原:git revert--abort
    bad2078
    我感觉到你了,伙计。最近我自己做了一些甜蜜的
    dead909
    尝试一下:git commit-am'revert bad2078'
    git状态
    @SajibKhanit对提交不做任何说明:
    git log master
    和&
    git fetch;git log origin/master
    ?不,通常当我还原提交时,应该有一个“还原的提交”,但我看不到我的git logI中有任何更改。我有同样的问题,调用
    git commit--allow empty
    对我有效。我在上一次提交中解决了实际还原的合并冲突,因此我只需将分支指针重置为该真正的合并提交(
    git reset HEAD^
    $ 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