【问题标题】:Why does beyond compare opens git diff in merge mode?为什么 Beyond compare 会在合并模式下打开 git diff?
【发布时间】:2013-04-17 14:15:26
【问题描述】:
我们已经在我的项目中过渡到 git,现在我想超越它应该使用它的工作。我已阅读scootersoftware page 上的说明。我已经尝试了这两种选择,刚才我在我的 .gitconfig 中使用了旧的:
[diff]
tool = bc3
[difftool "bc3"]
path = "\"c:/program files/beyond compare 3/bcomp.exe\" \"$LOCAL\" \"$REMOTE\""
这并不像我期望的那样工作。这打开了超越比较工具,但由于某种原因,我进入了合并模式,顶部有三个窗口,底部有一个窗口。有什么想法吗?
【问题讨论】:
标签:
beyondcompare
beyondcompare3
【解决方案1】:
我相信我得到了您想要的窗口,这是我的设置。
[diff]
tool = bc3x
renames = copies
[difftool "bc3x"]
cmd = \"c:/program files (x86)/beyond compare 3/bcomp.exe\" \"$LOCAL\" \"$REMOTE\"
[difftool]
prompt = false
我多年来一直使用相同的设置,并没有给我带来任何问题。希望这会有所帮助。
【解决方案2】:
不确定您的情况是否与我的相同,但我也遇到过类似的问题,但这是由 .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
[mergetool "BeyondCompare3"]
到
[mergetool "MergeBeyondCompare3"]
这意味着它使用带有两个参数的 difftool 版本。
您会期望您也应该能够将第一部分更改为
[merge]
tool = MergeBeyondCompare3
但如果你这样做了,那么命令 git difftool file1.txt file2.txt 会使用 Merge 而不是 diff,它将使用返回到我们原来的位置。
缺点是如果你真的想使用合并,你需要使用-t MergeBeyondCompare3 命令行选项。