3

我想对存在于 2 个不同分支中的单个文件进行 3 向差异,即每个分支中的最后一次提交,并考虑共同的祖先。我想使用一个允许进行三向比较的外部工具。我正在考虑使用 git difftool 但据我所知,它只允许比较给定文件的任何 2 个版本。我可以使用 mergetool 但这迫使我首先运行 git merge 以便设置 BASE、REMOTE 和 LOCAL 变量。我不想运行 git merge。考虑到它的共同祖先,我只想先做一个 3-way diff 来查看两个分支中对文件所做的更改。

是否可以使用 difftool 或 mergetool 来做我需要的事情?谢谢

4

2 回答 2

3

一种解决方案是视觉扩散,它可以直接对 git 修订进行操作并支持 n 向视图。

例如,您可以在文件的不同分支之间打开三向差异:

diffuse -r master -r HEAD -r upstream file.txt

于 2017-05-22T11:33:21.703 回答
0

安装你喜欢的 3-way diff 工具,我喜欢的是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

于 2022-02-06T10:23:20.447 回答