我正在尝试将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。
答案 0 :(得分:8)
我与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