1

我正在尝试在 Windows 10 下为 Git 配置外部 difftool 和 mergetool。

一切都在告诉我要输入两个 Git 命令,如下所示。有人说用一段wrapper.sh时间,有人说没必要。

git config --global diff.tool diffmerge

(第二行看起来像这样:)

git config --global difftool.diffmerge.cmd "path to sgdm.exe or some_wrapper.sh" $LOCAL $REMOTE**

这对我不起作用。我也试过:

git config --global difftool.diffmerge.cmd C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe \"$LOCAL\" \"$REMOTE\"

git config --global difftool.diffmerge.cmd C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe "$LOCAL" "$REMOTE"

git config --global difftool.diffmerge.cmd "C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe $LOCAL $REMOTE"

我的配置文件如下所示:

[filter "lfs"]

        clean = git-lfs clean %f
        smudge = git-lfs smudge %f
        required = true
[user]

        name= John Doe
[diff]

        tool = dm
[difftool]

        prompt = true
[difftool "dm"]

        cmd = \"C:\\Program Files\\SourceGear\\Common\\DiffMerge\\sgdm.exe\" \"$LOCAL\" \"$REMOTE\" //t

我究竟做错了什么?

4

2 回答 2

1

检查您的全局.gitconfig文件以确保路径以正确的格式结束(在路径周围加上引号和空格等)。

这是我的配置文件中的相关部分:

[diff]
    tool = vsdiffmerge
[difftool]
    prompt = true
[difftool "vsdiffmerge"]
    cmd = \"C:\\Program Files (x86)\\Microsoft Visual Studio 11.0\\Common7\\IDE\\vsdiffmerge.exe\" \"$LOCAL\" \"$REMOTE\" //t
    keepbackup = false
    trustexistcode = true
[merge]
    tool = vsdiffmerge
[mergetool]
    prompt = true
[mergetool "vsdiffmerge"]
    cmd = \"C:\\Program Files (x86)\\Microsoft Visual Studio 11.0\\Common7\\IDE\\vsdiffmerge.exe\" \"$REMOTE\" \"$LOCAL\" \"$BASE\" \"$MERGED\" //m
    keepbackup = false
    trustexistcode = true
于 2015-12-21T23:29:08.327 回答
0

听起来您可能会对完整的 GUI 客户端感到满意。我使用Sourcetree外部合并工具(在 OSX 上)集成。事实上,Sourcetree 的内置合并工具也很棒。

于 2015-12-22T00:08:16.763 回答