我正在尝试将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。
最佳答案
我与difftool
和mergetool
混为一谈。我需要使用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