我的 git 全局配置 C:\Users\.gitconfig 看起来像:
[diff]
tool = bc3
[difftool "bc3"]
path = C:/Program Files (x86)/Beyond Compare 3/BCompare.exe
cmd = \"C:/Program Files (x86)/Beyond Compare 3/BCompare.exe\" \"$LOCAL\" \"$REMOTE\"
我使用的是 Windows 7 x64 操作系统。我有 Beyond Compare Pro 3.3.5 版本。
我想在调用 BCompare.exe 时传递一个或多个参数 我试过这个,但它不起作用:
cmd = \"C:/Program Files (x86)/Beyond Compare 3/BCompare.exe\ /expandall" \"$LOCAL\" \"$REMOTE\"
git difftool --dir-diff dev master
我想在 dev 和 master 分支之间进行目录比较,并在 Beyond Compare 工具中展开所有文件夹。这应该与 Beyond Compare GUI 中的相应按钮相同:Expand All,它会展开左 Pane 和右 Pane 中的所有文件夹。
我可能需要传递 2 个参数:/solo/expandall
谢谢, pull 德
最佳答案
使用 -expandall
代替 /expandall
的形式,并注意 -solo
是必需的(解释下)。
[diff]
tool = bc3
[difftool "bc3"]
cmd = \"E:/PortApps/Beyond Compare 3/bcomp.exe\" -expandall -solo \"$LOCAL\" \"$REMOTE\"
以上适用于我在 Windows XP SP3(x86 32 位)上的 Beyond Compare 3.3.8(标准版)和 Git For Windows 1.8.4 (msysgit)。
注意事项
我发现如果我提供
cmd
,则不需要path
设置。根据 BC tech support,您可能需要使用
BCompare.exe
而不是bcomp.exe
...但我发现无论哪种方式都可以正常工作。
独奏解释
-solo
选项使比较在新窗口中打开。 difftool
然后将等待您将其关闭,然后再删除正在比较的临时文件。
如果没有此选项,如果您已经打开了 Beyond Compare 窗口,则比较将出现在新选项卡中。这看起来很方便,但实际上行不通,因为 difftool
将立即删除要比较的文件,因为您调用 bcomp.exe
只是将任务委托(delegate)给已经-运行应用程序然后退出。
关于git - Beyond Compare as a Diff tool with Git - 如何像 :/expandall 这样的命令行开关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15873874/