解决非内容git合并与“我们的”冲突

时间:2016-10-12 00:57:52

标签: git merge

当使用'git merge some_branch -Srecursive -Xours'将一个分支合并到另一个分支时,我有时会进行重命名/删除,修改/删除以及重命名/重命名冲突。我认为这些冲突可以通过-Xours选项处理,但显然它只处理内容冲突。

我想在合并命令中解决所有上述有利于HEAD的冲突 - 这可能吗?

1 个答案:

答案 0 :(得分:0)

{J}仅适用于内容冲突,这是正确的。

我认为 - 我没有重新检查这一点 - 重命名/删除冲突导致文件被遗留(在其新名称下),无论哪个分支重命名它并删除它。因此,您必须手动-X不再在git rm但在HEAD中的文件,否则MERGE_HEAD可以解决冲突。

修改/删除的处理方式相同,因此您可以手动git addgit rm以相同的方式处理修改/删除。

重命名/重命名冲突可能(我自己没有遇到过)解决了git add重命名,所以你需要做的就是HEAD新名称下的文件

请注意,您可以通过阅读git add的输出以编程方式执行此操作。为了文件名安全,您可能也想使用git ls-files --stage(但是您需要使用bash或Python或其他可以处理NUL字节的语言)。