我正在尝试将BeyondCompare4配置为git中的difftool和mergetool。我正在使用git版本2.5.0.windows.1。到目前为止,BeyondCompare4作为difftool工作得很好,但不是合并工具。
在我的主分支机构中,我运行git mergetool branch3
并以No files need merging
但是当我运行git diff branch3
时,我可以在一个文件中看到几种类型的差异(通常在同一行)。如果我只是运行git merge branch3
,它会启动合并过程并停止CONFLICT。那么为什么git mergetool
不能以同样的方式为我工作呢?
此链接提示git config --global core.trustctime false
我试过没有运气:
git mergetool reports "No files need merging"
此链接建议rerere可能是一个问题所以我尝试git config --global rerere.enabled false
也没有运气:
git tells me that I Merge conflict, but also tells me that no files need merging
这就是我的.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
提前停止该消息的任何想法。
答案 0 :(得分:4)
当您处于需要解决冲突的状态时,即在合并导致冲突后,您应该使用git mergetool
。
git checkout master
git merge branch3
# the merge reports conflicts which we need to resolve
git mergetool
git add -u
git commit -m "a merge commit message"
有关解决与meregetool冲突的更多信息,请访问https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging#Basic-Merge-Conflicts
请参阅git help mergetool
了解选项。