当前位置:  开发笔记 > 后端 > 正文

如何使用Winmerge与Git扩展?

如何解决《如何使用Winmerge与Git扩展?》经验,为你挑选了4个好方法。

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

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

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



1> foxtrotZulu..:

概述
以下是有关如何设置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是否全部为"绿色"并对您的设置满意.



2> Cristi Diaco..:

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

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

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

在此输入图像描述

||   ||   ||
\/   \/   \/

在此输入图像描述

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


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

3> TimDog..:

在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



4> foraidt..:

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

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有