将Diffmerge设置为Visual Git差异工具不起作用。

3

我试图将 DiffMerge 配置为我的 Git difftool,但是没有成功。以下是我.gitconfig 文件中相关的部分(未显示的其他设置仅适用于用户)。

[diff]
        tool = diffmerge
[difftool "diffmerge"]
        cmd = \"C:\\Program Files\\SourceGear\\Common\\DiffMerge\\sgdm.exe\" \"$LOCAL\" \"$REMOTE\"

每当我从PowerShell命令行调用git difftool时,冲突直接显示在PowerShell界面下方,而不是像预期的那样在diffmerge中。我知道git正在读取设置,因为当我检查全局配置时,我能够得到配置文件中的设置:
git config --global --get-all difftool.diffmerge.cmd
"C:\Program Files\SourceGear\Common\DiffMerge\sgdm.exe" "$LOCAL" "$REMOTE"

我正在运行PowerShell而不是Git Bash。这是因为我安装了GitHub for Windows,它提供了PowerShell作为Git的shell,所以我还没有需要安装Bash。Git版本是1.7.11.msysgit.0。

1个回答

8
我曾经搞混了difftoolmergetool。我需要使用mergetool来解决冲突,并通过可视化界面保存结果。difftool只会显示差异之处。请参见git-mergetool-vs-difftool以获得更多澄清信息。
我将此部分添加到我的.gitconfig中,并从powershell命令行中调用git mergetool。开心的一天。
[merge]
    tool = diffmerge
[mergetool "diffmerge"]
    cmd = \"C:\\Program Files\\SourceGear\\Common\\DiffMerge\\sgdm.exe\" --merge --result=\"$MERGED\" \"$LOCAL\" \"$BASE\" \"$REMOTE\"
    trustExitCode = true
    keepBackup = false

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接