如何使用Winmerge与Git扩展?

seb*_*aan 52 git settings winmerge git-extensions

我正在使用Git Extensions,它预先安装并设置KDiff作为解决合并冲突的diff工具.我非常喜欢Winmerge,并希望用Winmerge取代KDiff.

在Git Extensions设置中,有一些设置可以更改Mergetool,但我似乎无法弄清楚我应该使用什么语法以及为什么.似乎有4个变量:$ BASE,$ LOCAL,$ REMOTE,$ MERGED.看来我应该将这些传递给WinMergeU.exe,但是哪个命令行参数?

我曾尝试过几次搜索,但实际上似乎没有答案.

fox*_*ulu 51

概述
以下是有关如何设置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"
Run Code Online (Sandbox Code Playgroud)

转到"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\"
Run Code Online (Sandbox Code Playgroud)

运行"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是否全部为"绿色"并对您的设置满意.


Cri*_*scu 22

在Git Extensions v2.47.3上,设置它很容易:

设置 - >全局设置 - >在'Mergetool'下拉菜单中手动编写:WinMerge并观察奇迹.

"Difftool"下拉菜单也是如此.

在此输入图像描述

||   ||   ||
\/   \/   \/
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

愚蠢的是,'WinMerge'选项未在下拉列表中预先填充.那好吧.

  • 这个对我有用,就像一个魅力:) (3认同)
  • 在Git Extensions 3.0中,设置的路径为:工具->设置-> Git->配置 (2认同)

Tim*_*Dog 10

在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
Run Code Online (Sandbox Code Playgroud)


for*_*idt 8

@ 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设置左窗格和右窗格的描述.