如何在合并错误后恢复git合并冲突?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (22)

我试图合并两个分支,其中有很多变化,其中几个合并冲突。我使用git mergetool,但后来我意识到,我把其中的几个错误地合并了。基本上,我想回到这对文件的冲突状态,这样我就可以重新运行MergeTool并纠正我的错误。我不想扔掉我的整个合并,因为它大部分是正确的。

我试着重新调整我的头然后git checkout -m other_branch -- my_file没有结果。最后我重新设置了头,把文件从另一个分支中拿出来,就这样做了。git add --patch在文件里,只是装出我想要的。但一定有更好的方法。

提问于
用户回答回答于

首先,检查索引中是否存在冲突状态(在重置到头之前),通过

$ git ls-files --stage --abbrev my_file

应该得到如下内容:

100644 257cc56  1        my_file
100644 b7d6715 2        my_file
100644 5716ca5  3        my_file

如果你不明白,你就得用git update-index,或者使用临时文件。如果你有,那么

$ git checkout -m my_file

应该有用(我已经查过了)。

用户回答回答于

git update-index使用--cacheinfo--index-info选项以删除0在给定文件的索引中输入并填充123条目分别带有基版本、本地版本和远程版本,但它将非常谨慎。

将各种版本提取到临时文件中并手动运行合并工具、将答案写入正确的文件并添加成功合并的结果可能会更容易。

G.

git show $(git merge-base HEAD MERGE_HEAD):file >base-file
git show HEAD:file >local-file
git show MERGE_HEAD:file >remote-file

手动运行MergeTool,将file

git add file

扫码关注云+社区