当使用'git merge some_branch -Srecursive -Xours'将一个分支合并到另一个分支时,我有时会进行重命名/删除,修改/删除以及重命名/重命名冲突。我认为这些冲突可以通过-Xours选项处理,但显然它只处理内容冲突。
我想在合并命令中解决所有上述有利于HEAD的冲突 - 这可能吗?
答案 0 :(得分:0)
{J}仅适用于内容冲突,这是正确的。
我认为 - 我没有重新检查这一点 - 重命名/删除冲突导致文件被遗留(在其新名称下),无论哪个分支重命名它并删除它。因此,您必须手动-X
不再在git rm
但在HEAD
中的文件,否则MERGE_HEAD
可以解决冲突。
修改/删除的处理方式相同,因此您可以手动git add
或git rm
以相同的方式处理修改/删除。
重命名/重命名冲突可能(我自己没有遇到过)解决了git add
重命名,所以你需要做的就是HEAD
新名称下的文件
请注意,您可以通过阅读git add
的输出以编程方式执行此操作。为了文件名安全,您可能也想使用git ls-files --stage
(但是您需要使用bash或Python或其他可以处理NUL字节的语言)。