我正在使用CYGWIN和Beyond Compare 4 Pro Edition。我已经设置了以下.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
在对本地文件进行少量更改后,我在CYGWIN中运行以下命令:
git difftool
Beyond Compare 4正确启动,但只有左侧全部为红色。右边是空的。
我希望通过简单比较我的本地更改(左)和远程(右)来启动。
我是假设这是默认行为?是否有其他设置我缺少或只是可用的
答案 0 :(得分:0)
您列出的配置应该可以在Windows命令提示符下使用Git for Windows 2.12.1.windows.1正常运行。我还没有用Cygwin测试过它。
如果您正在使用Cygwin提供的Git版本,则可能有助于从https://git-scm.com/切换到Windows版本的Git。在过去,Cygwin的Git版本相当落后于官方Windows版本。要检查您的Git版本,请运行" git --version"。
答案 1 :(得分:0)
我能够通过将.gitconfig文件配置为以下内容来解决我的问题:
[difftool "bc3"]
cmd = \"c:/program files/beyond compare 4/bcomp.exe\" "$(cygpath -w $LOCAL)" "$REMOTE"
这会在执行git difftool
答案 2 :(得分:0)
我不得不在上面修改jipot's answer:
git config --system difftool.bc.cmd '"c:/program files/beyond compare 4/bcomp.exe" "$(cygpath -w $LOCAL)" "$(cygpath -w $REMOTE)"'
更进一步,对于mergetool同样:
git config --system mergetool.bc.cmd '"c:/program files/beyond compare 4/bcomp.exe" "$(cygpath -w $LOCAL)" "$(cygpath -w $REMOTE)" "$(cygpath -w $BASE)" "$(cygpath -w $MERGED)"'
对于core.editor
,如果要使用Sublime Text,则需要使用包含以下命令的外部脚本~/git-editor.sh
:
cygpath --windows $@ | sed 's/\\/\\\\/g' | tr '\n' '\0' | xargs -0 -n1 /cygdrive/c/Program\ Files/Sublime\ Text\ 3/subl.exe -n -w
我从Alexander Revo's post修改了以上内容。
然后将其添加到您的git core.editor
配置中:
git config --system core.editor "~/git-editor.sh"
如果您不使用外部脚本作为编辑器,那么当您尝试将$cygpath
放入core.editor
配置中时,git将导致Sublime文本打开两个文件,因为git会附加“错误路径”文件名添加到core.editor
设置的末尾。