我正在尝试将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。

最佳答案

我与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

08-27 06:33