0

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

我希望通过将本地更改(左)与远程(右)进行简单比较来启动它。

我假设这是默认行为?我是否缺少其他设置或仅此设置可用

4

3 回答 3

2

我能够通过将我的 .gitconfig 文件配置为以下内容来解决我的问题:

[difftool "bc3"]
     cmd = \"c:/program files/beyond compare 4/bcomp.exe\" "$(cygpath -w $LOCAL)" "$REMOTE"

这会在执行时产生本地和远程的差异git difftool

于 2017-05-01T17:24:52.610 回答
1

我不得不修改上面jipot的答案

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 的帖子中修改了上述内容。

然后将其添加到您的 gitcore.editor配置中:

git config --system core.editor "~/git-editor.sh"

如果您不为编辑器使用外部脚本,如果您尝试放入配置,git 将导致 Sublime text 打开两个文件,$cygpath因为core.editorgit 会将“错误路径”文件名附加到core.editor设置的末尾。

于 2020-06-04T07:24:11.003 回答
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”。

于 2017-04-28T21:35:22.277 回答