我正在使用 Git Extensions它预装并设置了 KDiff 作为 diff 工具来解决 merge 冲突。不过,我非常喜欢 Winmerge,并且想用 Winmerge 替换 KDiff。
在 Git Extensions 设置中,有更改 Mergetool 的设置,但我似乎无法弄清楚我应该使用什么语法以及为什么。似乎有 4 个变量:$BASE、$LOCAL、$REMOTE、$MERGED。看来我应该将这些传递给 WinMergeU.exe,但是使用哪些命令行参数?
我已尝试搜索此内容几次,但似乎没有真正有效的答案。
最佳答案
概览
以下是有关如何设置 GIT 版本控制的说明,以便您可以使用比默认安装更好的工具集。该设置要求已安装 GIT 扩展并涉及在 GIT 扩展中配置 Winmerge。
安装
完成所有提示并在 Winmerge 的默认目录中安装。
在 GIT 版本控制中配置 Winmerge
在文本编辑器中打开一个新文档。
复制/粘贴以下内容并将文档作为“wMerge.sh”保存到“C:\Program Files (x86)\Git\bin\”目录。
echo Launching WinMerge: $1 $2 "C:/Program Files (x86)/WinMerge/WinMergeU.exe" -e -u -dl "Original" -dr "Modified" "$1" "$2"
转到“Users->username”目录并找到 .gitconfig 文件。在您喜欢的编辑器中打开它,复制/粘贴以下代码并保存:
[user]
name = enter your name
email = youremail@yourdomain.com
[core]
autocrlf = false
[merge]
tool = winmerge
[mergetool "winmerge"]
cmd = wMerge.sh \"$MERGED\" \"$REMOTE\"
path = c:/Program Files (x86)/winmerge/winmergeu.exe
[mergetool]
keepBackup = false
trustExitCode = false
[diff]
guitool = winmerge
[difftool "winmerge"]
path = c:/Program Files (x86)/winmerge/winmergeu.exe
cmd = \"c:/Program Files (x86)/winmerge/winmergeu.exe\" \"$LOCAL\" \"$REMOTE\"
运行“GitExtensions”,转到“工具->设置->Git 扩展->Git 配置”。如果您已正确完成安装并将工具引用到其目录,则您的全局设置页面应如下所示(注意:请在姓名和电子邮件中填写您的姓名):
merge 工具:winmerge
merge 工具的路径:c:/Program Files (x86)/winmerge/winmergeu.exe
merge 工具命令:wMerge.sh "$MERGED""$REMOTE"
差异工具:winmerge
difftool 的路径:c:/Program Files (x86)/winmerge/winmergeu.exe
difftool 命令:"c:/Program Files (x86)/winmerge/winmergeu.exe""$LOCAL""$REMOTE"
行尾:按原样 checkout ,按原样提交
导航到 list 选项卡以验证 GIT 是否全部“绿色”并且对您的设置感到满意。
关于git - 如何将 Winmerge 与 Git 扩展一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2468230/