将diffmerge设置为可视Git difftool不起作用

时间:2012-08-29 10:27:23

标签: git powershell git-config github-for-windows diffmerge

我正在尝试将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。这是因为我为windows安装了github,它提供了powershell作为git的shell,所以我不需要安装bash(还)。 Git版本是1.7.11.msysgit.0。

1 个答案:

答案 0 :(得分: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