我正在使用Git Extensions,它预先安装并设置KDiff作为解决合并冲突的diff工具.我非常喜欢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",转到"tools-> Settings-> Git Extensions-> Git Config".如果您已正确完成安装并将工具引用到其目录,则全局设置页面应如下所示(注意:请在名称和电子邮件中填写您的姓名):
mergetool:mergetool的winmerge
路径:c:/Program Files (x86)/winmerge/winmergeu.exe
mergetool命令:wMerge.sh "$MERGED" "$REMOTE"
difftool:winmerge
path到difftool:c:/Program Files (x86)/winmerge/winmergeu.exe
difftool命令:"c:/Program Files (x86)/winmerge/winmergeu.exe" "$LOCAL" "$REMOTE"
行结尾:按原样结帐,按原样提交
导航到核对表选项卡以验证GIT是否全部为"绿色"并对您的设置满意.
在Git Extensions v2.47.3上,设置它很容易:
设置 - >全局设置 - >在'Mergetool'下拉菜单中手动编写:WinMerge
并观察奇迹.
"Difftool"下拉菜单也是如此.
|| || || \/ \/ \/
愚蠢的是,'WinMerge'选项未在下拉列表中预先填充.那好吧.
在Windows 7上,这最终对我有用.请注意"'c:/path/here'"
我的程序文件路径周围的引号.
[merge] tool = winmerge [mergetool "winmerge"] cmd = "'C:/Program Files (x86)/WinMerge/WinMergeU.exe'" -e "$MERGED" [diff] tool = winmerge [difftool "winmerge"] cmd = "'C:/Program Files (x86)/WinMerge/WinMergeU.exe'" -e "$LOCAL" "$REMOTE" -dl "Local" -dr
@ sebastiaan的回答对我不起作用(也许它已经过时了?)
这些是使用GitExtensions 2.28为我工作的"全局设置":
Mergetool:winmerge
mergetool的路径:D:/path/to/WinMerge/WinMergeU.exe
Mergetool命令:"D:/path/to/WinMerge/WinMergeU.exe" -e "$MERGED"
这会导致WinMerge使用git生成的"冲突文件".
-e
允许按ESC关闭winmerge.
Difftool:difftool的winmerge
路径:D:/path/to/WinMerge/WinMergeU.exe
Difftool命令:"D:/path/to/WinMerge/WinMergeU.exe" -e "$LOCAL" "$REMOTE" -dl "Local" -dr "Remote"
-dl
并-dr
设置左窗格和右窗格的描述.