3

我正在尝试将 DiffMerge 配置为我在 Git 中的 difftool,但没有运气。这是我的.gitconfig文件的重要部分(未显示的其他设置仅供用户使用)。

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

每当我git difftool从 powershell 命令行调用时,冲突都会直接显示在 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。

4

1 回答 1

8

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

我将此部分添加到我的并改为从 powershell 命令行.gitconfig调用。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
于 2012-08-29T11:58:48.610 回答