我正在尝试 merge 2 个分支,其中有很多更改,其中几个分支存在 merge 冲突。我使用 git mergetool
merge 了这些文件,但后来我意识到我错误地 merge 了其中几个文件。我基本上想回到那些文件的冲突状态,这样我就可以重新运行 mergetool 并更正我的错误。我不想放弃我的整个 merge ,因为其中大部分都是正确的。
我试过重置我的头脑然后执行 git checkout -m other_branch -- my_file
无济于事。我最终重置为 HEAD,从另一个分支中获取文件,然后对文件执行 git add --patch
操作,只暂存我想要的内容。但必须有更好的方法......
最佳答案
首先,检查索引中是否存在冲突状态(在重置为 HEAD 之前),通过
$ 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
,比如 Charles Bailey said ,或使用临时文件。如果你有,那么
$ git checkout -m my_file
应该可以工作(我已经检查过了)。
关于git - 错误 merge 后如何恢复 git merge 冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1677049/