如何在Git上执行三路可视化差异比较?

4
我想对两个不同分支中的同一文件进行三方差异比较,即每个分支的最后提交以及共同祖先。我想使用允许进行三方比较的外部工具。我考虑使用git difftool,但据我所知,它只允许比较给定文件的任意两个版本。我可以使用mergetool,但这会强制我先运行git merge,以便设置BASE、REMOTE和LOCAL变量。我不想运行git merge,只是想首先进行三方差异比较,以查看在考虑其共同祖先的情况下对文件进行的更改。是否有选项可以使用difftool或mergetool来做到这一点? 谢谢

这可能不是你想要的,但你知道 git config --global merge.conflictstyle diff3 吗? - jub0bs
1
是的,我以前看过这个。不过,它并不能满足我的需求。谢谢。 - Sergio
2个回答

4
一种解决方案是使用可视化工具diffuse,它可以直接操作git修订版本,并支持n路视图。
例如,您可以打开一个三路比较不同分支的文件: diffuse -r master -r HEAD -r upstream file.txt

0

安装你喜欢的三向差异工具,我个人偏爱KDiff3

打开GIT全局配置进行编辑: git edit --global --edit

在你选择的工具中进行调整:

[diff]  
    tool = kdiff3
[difftool]
    prompt = true
[difftool "kdiff3"]
    cmd = 'C:/Program Files/KDiff3/kdiff3.exe' \"$LOCAL\" \"$REMOTE\"
    keepBackup = false
[merge]
    tool = kdiff3   
[mergetool]
    prompt = true
[mergetool "kdiff3"]
    cmd = 'C:/Program Files/KDiff3/kdiff3.exe' \"$BASE\" \"$LOCAL\" \"$REMOTE\" -o \"$MERGED\"
    trustExitCode = true
    keepBackup = true   

要在VS Code中使用右键命令打开文件,我添加了这个简单的插件:GIT diff merge tool


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接