git difftool超越比较4不与远程

时间:2017-04-27 21:18:27

标签: git beyondcompare git-difftool beyondcompare4

我正在使用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正确启动,但只有左侧全部为红色。右边是空的。

我希望通过简单比较我的本地更改(左)和远程(右)来启动。

我是假设这是默认行为?是否有其他设置我缺少或只是可用的

3 个答案:

答案 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设置的末尾。