与Git和KDiff3进行三向比较

Mak*_*kis 12 git diff3 kdiff3

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

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

git difftool HEAD_OF_OTHER_BRANCH -- .
Run Code Online (Sandbox Code Playgroud)

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

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

讨论有关如何使用SVN和BC3做到这一点,但我无法找到Git和KDiff3什么.

Eds*_*ina 9

在命令行上运行:

git config --global mergetool.kdiff3.path /path/for/your/kdiff3/binary  
Run Code Online (Sandbox Code Playgroud)

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

git mergetool --tool=kdiff3
Run Code Online (Sandbox Code Playgroud)


mb1*_*b14 3

看起来 git diff 只做 2 路 diff (这对于生成补丁等有意义),除了在合并状态下,你必须为此进行合并。前几天我也遇到了类似的情况,最终我使用了该ours策略进行了合并。这有效,但并不理想。也许我们需要一个“非解决”合并策略,它不会尝试解决任何冲突。您也许可以通过调整 .git/MERGE_* 文件并将所有文件设置为冲突来模拟这一点。
否则,明显的解决方案是签出 3 个不同的目录并运行 kdiff3 ,但我猜您正在寻找更优雅的解决方案