与Git和KDiff3进行三向比较

时间:2010-09-03 12:39:48

标签: git kdiff3 diff3

是否可以设置Git以便我可以在KDiff3中使用三向比较?

我有两个分支,它们太不同了,无法自动合并它们,我只需检查每个合并点,我认为最好的方法是检查分支我希望从其他分支的更改并说< / p>

git difftool HEAD_OF_OTHER_BRANCH -- .

然后在KDiff3中选择合并文件。在完成了我刚刚提交的文件之后。

我已将merge.conflictstyle和diff.conflictstyle设置为diff3,但KDiff3仍然以双向diff开头。这可能吗?我想如果Git也将共同祖先的哈希作为参数发送,这是可能的,但是它呢?

关于如何使用SVN和BC3进行此操作有discussion,但我找不到Git和KDiff3的任何内容。

2 个答案:

答案 0 :(得分:9)

在命令行上运行:

git config --global mergetool.kdiff3.path /path/for/your/kdiff3/binary  

然后,在解决冲突时,您只需要这样做:

git mergetool --tool=kdiff3

答案 1 :(得分:2)

似乎git diff只做一个双向差异(生成补丁等有意义),除非在合并状态下,你必须为此进行合并。前几天我处于类似情况,最后我使用ours策略结束了mergin。虽然有效,但并不理想。也许我们需要一种“非分辨”合并策略,它不会试图解决任何冲突。您可以通过调整.git / MERGE_ *文件并将所有文件设置为冲突来模拟它。
否则显而易见的解决方案是结帐3个不同的目录并运行kdiff3,但我想你正在寻找更优雅的解决方案