同时比较两个分支的不同:使用Beyond Compare

19

>> git difftool branch1 branch2 命令可以打开我的差异比对工具 (Beyond Compare:BC),并显示这两个分支之间所有有差异的文件。我必须在每个文件比对完成后关闭 BC,才能重新打开下一个文件。

BC 可以比对整个目录和多个文件。

是否有一种方法可以使 git difftool 同时打开所有文件,或同时比对整个目录?


你使用的是3.0版本吗?我问这个是因为它有一个选项卡界面。 - NinjaCat
是的,我想让它在选项卡中显示所有不同的文件,例如,在比较目录结构模式下。 - Adi Shavit
2个回答

22

从git v1.7.11开始,您可以使用git difftool --dir-diff执行目录比较。

以下答案适用于早于v1.7.11的git安装。


此问题与BC无关,而与git的工作方式有关。 不过,这个URL(git-diffall)提供了解决方案。


确实,这是一个Git问题。我尝试过,但在Windows上无法正常工作。脚本在Bash shell中运行良好,并且BC在正确的位置打开,但似乎tmp文件不存在。 - Adi Shavit
最终,我选择了这个链接http://goo.gl/YPd2s。它是从你发送的链接中获取的。所以谢谢! - Adi Shavit
在Windows和OSX上,对我来说运行得很好。 - Olivier Refalo

18
我使用了这些命令来设置Beyond Compare 4(尽管其中包含bc3)作为差异/合并工具:
全局设置差异工具bc3: git config --global diff.tool bc3
指定Beyond Compare 4路径: git config --global difftool.bc3.path "C:/Program Files/Beyond Compare 4/bcomp.exe"
全局设置合并工具bc3: git config --global merge.tool bc3
指定Beyond Compare 4路径: git config --global mergetool.bc3.path "C:/Program Files/Beyond Compare 4/bcomp.exe" 然后我像这样比较两个分支,“oldbranchname”和“newbranchname”是我想要比较的两个分支的名称。
使用Beyond Compare进行分支对比: git difftool -d --tool=bc3 oldbranchname newbranchname 我得到了文件夹视图,就好像我用Beyond Compare比较了两个文件夹。唯一需要注意的是,它不会显示相同的文件在比较中,但这并没有困扰我。

1
是的,-d选项就可以了,它相当于有效选项--dir-diff - Adi Shavit
2
在Mac上,我发现我必须更改选项以跟随符号链接。 - Steve
在Mac上使用Beyond Compare 4跟随符号链接的选项不在通常的首选项区域中。BC4工作人员在他们的论坛上指出了如何设置它:https://www.scootersoftware.com/vbulletin/showthread.php?12751-Symlink-issue-with-git-difftool-dir-dif&s=ae3003e55568f92c53ecd9de3e06c65c&p=42576#post42576 - lantrix

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