【问题标题】:Getting Beyond Compare to Diff 2 Branches Simultaneously超越同时比较 Diff 2 分支
【发布时间】:2025-12-15 07:30:02
【问题描述】:

>>git difftool branch1 branch2 打开我的 difftool(Beyond Compare:BC),每个文件在分支之间都有差异。 我必须在每个文件之后关闭 BC,以便它与下一个文件一起重新打开。

BC 可以区分整个目录和多个文件。

有没有办法让git difftool 同时打开所有文件,或者同时区分整个树?

【问题讨论】:

  • 您使用的是 3.0 版吗?我只问,因为它有一个选项卡式界面。
  • 是的,我是。例如,我希望它在选项卡中或在比较目录结构模式下显示所有差异文件。

标签: git branch beyondcompare difftool


【解决方案1】:

从 git v1.7.11 开始,您可以使用git difftool --dir-diff 进行目录差异。

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


这个问题与 BC 无关,而与 git 的工作方式有关。 幸运的是,这个 URL 有一个解决方案 - git-diffall

【讨论】:

  • 确实,这是一个 Git 问题。我试过了,但我无法让它在 Windows 上正常工作。脚本运行良好(在 Bash shell 中)并且 BC 在正确的位置打开,但 tmp 文件似乎不存在。
  • 最后还是选择了这个goo.gl/YPd2s。它是从您发送的链接链接的。所以谢谢!
  • 有趣的是,它在 windows 和 osx 上对我来说运行良好
【解决方案2】:

我使用these commands to set Beyond Compare 4(尽管您在其中看到 bc3)作为差异/合并工具:

git config --global diff.tool bc3
git config --global difftool.bc3.path "C:/Program Files/Beyond Compare 4/bcomp.exe"

git config --global merge.tool bc3
git config --global mergetool.bc3.path "C:/Program Files/Beyond Compare 4/bcomp.exe"

然后我像这样比较了两个分支,其中“oldbranchname”和“newbranchname”是我要比较的两个分支的名称。

git difftool -d --tool=bc3 oldbranchname newbranchname

我得到了文件夹视图,就好像我比较了两个文件夹一样无法比较。唯一需要注意的是,它不会在比较中显示相同的文件,但这并没有打扰我。

【讨论】:

  • 是的,-d 选项可以解决问题,它是否等同于 --dir-diff 有效。
  • 在 Mac 上我发现我必须更改选项以遵循符号链接
  • 在 Mac 上使用 Beyond Compare 4 跟踪符号链接的选项不在通常的首选项区域中。 BC4 工作人员注意如何在他们的论坛上设置它:scootersoftware.com/vbulletin/…