冲突解决后如何将文件移回冲突状态?

时间:2018-01-12 00:05:40

标签: git git-merge-conflict

我有一个冲突解决方案的真正错误,我认为我只是去寻求它,如果我失败了,那么我应该能够将文件恢复到冲突状态。但是,我似乎无法找到回归的方法。 git仍然处于MERGING状态,那么如何备份单个文件并重新解析呢?

1 个答案:

答案 0 :(得分:1)

首先,如果您认为可能有一个不错的分辨率(或部分分辨率),请将文件复制到其他位置。 :-)然后运行:

git checkout -m -- path

(仅当文件的 -- 类似于有效的path选项时才需要git checkout部分,例如,如果您想要的文件放回冲突状态被命名为--theirs-f或某些此类)。这将从三个输入(合并基础和两个分支头)重新创建文件的冲突标记变体,并将该文件写入工作树。

请注意,您可以指定--conflict=merge(默认)样式或--conflict=diff3样式。这与在merge.conflictStyle中设置.gitconfig相同,但仅适用于该文件和此一个结帐。

如果您(或git mergetool)使用了已在已解析变体上运行git add的合并工具,请注意这会将文件重新置于冲突状态,即它会恢复三个更高阶段的条目进入索引。您现在可以再次运行git mergetool,或者 - 我的个人偏好 - 只需手动编辑冲突的文件,并在您确信它是正确的后,git add生成的工作树副本。