git difftool无法启动Beyond Compare

7

我在使用git时遇到了问题,想要将Beyond Compare作为我的差异比较工具。

我正在使用“Git For Windows”,Windows 7 32位和Beyond Compare 4。

$ git --version
git version 1.9.5.msysgit.1
$ git config --list

[diff]
tool = bc3

[difftool "bc3"]
path = c:/Program Files/Beyond Compare 4/bcomp.exe

[merge]
tool = bc3

[mergetool "bc3"]
path = c:/Program Files/Beyond Compare 4/bcomp.exe

现在我已经阅读了其他人的问题并按照以下说明进行操作:
- 更改“bc3”为其他名称,如“abc3”或“beyondcompare” - 命令:git difftool --tool=bc3 MyFile.java - 在.gitconfig中更改'bc3'路径为'c:\Program Files\Beyond Compare 4\bcomp.exe' - 将$LOCAL $REMOTE添加到路径中
但我发现,即使通过上述参数'--tool=bc3'或'--tool=anyname'传递给'git difftool'命令,它总是启动默认的diff控制台查看器/工具(如果我没有记错的话是vimdiff)。
最后,这只对'git mergetool'起作用,在这种情况下,beyond compare被启动,您可以看到参数是相同的。
如果我漏掉了什么或需要更多详细信息,请告诉我。谢谢!
当我输入命令git difftool时: image

合并工具和差异工具看起来非常不同。阅读此帖子:https://dev59.com/SHVC5IYBdhLWcg3wjx5d - Eduardo Yáñez Parareda
请参阅http://www.scootersoftware.com/support.php?zz=kb_vcs#gitwindows - 如果不起作用,请尝试下面"GitHub for Windows"的手动配置方法。 - poke
配置完成后,请尝试使用以下命令:git difftool --tool=bc3 HEAD botnet.java - Eric Bouchut
3个回答

2
在Git for Windows 1.9.5中将Beyond Compare 4配置为外部差异工具,请按照Scooter Software的使用版本控制系统与Beyond Compare页面上的说明进行操作。
在完成配置说明后,可以使用Beyond Compare来比较文件差异。
git difftool filename.ext

如果仍然无法正常工作,请验证您在c:\users\username\.gitconfig文件中是否有正确的设置:
[diff]
    tool = bc3
[difftool "bc3"]
    path = c:/program files/beyond compare 4/bcomp.exe
[merge]
    tool = bc3
[mergetool "bc3"]
    path = c:/program files/beyond compare 4/bcomp.exe

如果仍然无法解决问题,请确保您没有在.git\config中设置特定于存储库的设置覆盖全局设置。

1

编写配置格式总是在变化。 这适用于Windows 10、VS 2019和Git 2.25。

[merge]
    tool = BeyondCompare4
[diff]
    guitool = beyondcompare4
    tool = beyondcompare4
[core]
    autocrlf = false
    editor = \"C:\\Program Files\\Microsoft VS Code\\Code.exe\" --wait
[difftool "beyondcompare4"]
    path = \"C:\\Program Files\\Beyond Compare 4\\bcomp.exe\"
    cmd = \"C:\\Program Files\\Beyond Compare 4\\bcomp.exe\" \"$LOCAL\" \"$REMOTE\"
    keepBackup = false
[mergetool "BeyondCompare4"]
    path = \"C:\\Program Files\\Beyond Compare 4\\bcomp.exe\"
    cmd = \"C:\\Program Files\\Beyond Compare 4\\bcomp.exe\" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\"

0
你的 git config --list 输出很奇怪。我的输出是名称-值对,没有节标题(忽略不相关属性):
diff.tool=bc3
difftool.bc3.path=c:/Program Files (x86)/Beyond Compare 3/bcomp.exe
merge.tool=bc3
mergetool.bc3.path=c:/Program Files (x86)/Beyond Compare 3/bcomp.exe

对我来说,Beyond Compare 3 在使用 git difftool <filename> 时表现良好,没有奇怪的选项。Beyond Compare 4 非常相似。

我的 git 版本几乎相同。

git --version
git version 1.9.5.msysgit.0

也许你为另一个仓库设置了选项;如果git difftool 出现 diff-cc ,则肯定没有将Beyond Compare配置为默认的差异工具。或者bcomp.exe出现了问题。

我粘贴的是我的“config”文件的输出。它并不完全是“git config --list”命令的输出。 - diegot

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