不确定您的情况是否与我的相同,但我遇到了类似的问题,但这是由 .gitconfig 中的合并设置引起的
我的设置包含以下行
[merge]
tool = BeyondCompare3
[diff]
guitool = BeyondCompare3
[difftool "BeyondCompare3"]
path = C:/Program Files (x86)/Beyond Compare 3/BComp.exe
cmd = \"C:/Program Files (x86)/Beyond Compare 3/BComp.exe\" \"$LOCAL\" \"$REMOTE\"
[mergetool "BeyondCompare3"]
path = C:/Program Files (x86)/Beyond Compare 3/bcomp.exe
cmd = \"C:/Program Files (x86)/Beyond Compare 3/bcomp.exe\" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\"
似乎发生的是 git 使用后一个选项(带有四个参数)而不是前者。
解决方法是从
[mergetool "BeyondCompare3"]
至
[mergetool "MergeBeyondCompare3"]
这意味着它使用带有两个参数的 difftool 版本。
您会期望您还应该能够将第一部分更改为
[merge]
tool = MergeBeyondCompare3
但是如果你这样做了,那么该命令git difftool file1.txt file2.txt
将使用 Merge 而不是 diff 将使用返回到我们所在的位置。
缺点是如果你真的想使用合并,你需要使用-t MergeBeyondCompare3
命令行选项。