我有一个真正的冲突解决程序专家,我认为我会去解决这个问题,如果失败了,那么我应该能够将文件恢复为冲突状态。但是,我似乎找不到回头路。 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
。