我有一个真正的冲突解决程序专家,我认为我会去解决这个问题,如果失败了,那么我应该能够将文件恢复为冲突状态。但是,我似乎找不到回头路。 git仍处于MERGING状态,那么如何备份单个文件并重新解析?

最佳答案

首先,如果您认为您可能有一个不错的解决方案(或部分解决方案),请将文件复制到其他位置。 :-)然后运行:
git checkout -m -- path
(仅当文件的--与有效的path选项相似时,才需要git checkout部分,例如,如果您要以冲突状态放回文件的文件名为--theirs-f或类似名称,则为)。这将从三个输入(合并基础和两个分支头)重新创建文件的冲突标记变体,并将该文件写入工作树。

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

如果您(或git mergetool)使用了已在解析的变体上运行git add的合并工具,请注意,这会将文件放回冲突状态,即,它将三个较高阶段的条目还原到索引中。现在,您可以再次运行git mergetool,或者(我个人喜好)运行,只要您确信正确无误,就可以手动编辑有冲突的文件,并对生成的工作树副本git add

08-26 20:59
查看更多