git - 错误 merge 后如何恢复 git merge 冲突?

标签 git merge

我正在尝试 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/

相关文章:

git - 进行更改后 fork Git 存储库

python - pandas 按此列连接/合并/连接只有一列的多个数据帧

python - 在 Python 中合并具有不同日期范围的多个列

git - 跟上其他分支的master

git - git merge 的 rebase 选项的目的是什么?

git - 为什么我的 Git 子模块 HEAD 与主模块分离?

git - 无法推送到 git 存储库

git - 当有多位作者使用版本控制时,您如何跟踪库的构建计数?

java - 如何通过比较 Java 中给定对象中的字段值来合并两个对象列表

python - Pandas 合并具有多列和容差的数据框