我正在尝试将BeyondCompare4配置为我的git difftool和mergetool。我使用的是git版本2.5.0.windows.1。到目前为止,BeyondCompare4作为difftool运行良好,但作为mergetool则不行。
从我的master分支中,我运行git mergetool branch3
,它会回复没有需要合并的文件
但是,当我运行git diff branch3
时,我可以看到一个文件中有几种类型的差异(通常在同一行上)。如果我只运行git merge branch3
,它会开始合并过程并停在CONFLICT处。那么为什么git mergetool
不能像这样为我工作呢?
这个链接建议使用git config --global core.trustctime false
,但我尝试了也无济于事:git mergetool报告“没有需要合并的文件”
这个链接建议rerere可能有问题,所以我尝试了git config --global rerere.enabled false
,但也没有成功:git告诉我有合并冲突,但也告诉我没有需要合并的文件
这是我的.gitconfig文件的内容:
[diff]
tool = bc
[difftool]
prompt = false
[difftool "bc"]
trustExitCode = true
cmd = 'c:/program files (x86)/beyond compare 4/bcomp.exe' $LOCAL $REMOTE
[merge]
tool = bc
[mergetool]
prompt = false
[mergetool "bc"]
trustExitCode = true
cmd = 'c:/program files (x86)/beyond compare 4/bcomp.exe' $LOCAL $REMOTE $BASE $MERGED
我甚至尝试修改.gitconfig,将bcomp4.exe的路径更改为虚假路径,只是想看看是否会出错。如果我更改difftool,则会出现找不到路径的错误。但是,如果我在mergetool上进行更改,它仅会持续显示“没有需要合并的文件”,这导致我认为BeyondCompare4甚至没有运行。
感谢任何关于为什么git mergetool会提前停止并显示该消息的想法。
rerere
,那么它可能是rerere
和mergetool
之间某种错误。我已经成功地使用了以下解决方法:git mergetool .
- 注意末尾的额外句点! - Mikko Rantalainen