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

Nic*_*ick 3 git powershell diffmerge git-config github-for-windows

我试图在Git中将DiffMerge配置为我的difftool,但没有运气.这是我的.gitconfig文件的一个重要部分(未显示的其他设置仅适用于用户).

[diff]
        tool = diffmerge
[difftool "diffmerge"]
        cmd = \"C:\\Program Files\\SourceGear\\Common\\DiffMerge\\sgdm.exe\" \"$LOCAL\" \"$REMOTE\"
Run Code Online (Sandbox Code Playgroud)

每当我git difftool从powershell命令行调用时,冲突都会直接显示在powershell界面的下方,而不是按预期在diffmerge中显示.我知道git会选择设置,因为当我检查全局配置时,我会从配置文件中获取设置:

git config --global --get-all difftool.diffmerge.cmd
"C:\Program Files\SourceGear\Common\DiffMerge\sgdm.exe" "$LOCAL" "$REMOTE"
Run Code Online (Sandbox Code Playgroud)

我正在运行powershell而不是git bash.这是因为我为windows安装了github,它提供了powershell作为git的shell,所以我不需要安装bash(还).Git版本是1.7.11.msysgit.0.

Nic*_*ick 8

difftool和混淆了mergetool.我需要用来mergetool解决与视觉界面的冲突并保存结果.difftool只显示你的差异.有关说明,请参阅git-mergetool-vs-difftool.

我将此部分添加到my .gitconfiggit mergetool从powershell命令行调用.快乐的时光.

[merge]
    tool = diffmerge
[mergetool "diffmerge"]
    cmd = \"C:\\Program Files\\SourceGear\\Common\\DiffMerge\\sgdm.exe\" --merge --result=\"$MERGED\" \"$LOCAL\" \"$BASE\" \"$REMOTE\"
    trustExitCode = true
    keepBackup = false
Run Code Online (Sandbox Code Playgroud)