在Linux中,我最喜欢的合并工具是Meld,我在使用或配置它与Git一起工作时没有遇到任何问题。但是,在Windows中,情况就不同了。
首先,我从这里找到的一个包安装了Meld:https://code.google.com/p/meld-installer/
然后,我像这样配置我的.gitconfig,以支持Meld作为默认的mergetool
[merge]
tool = meld
[mergetool "meld"]
path = C:\\Program Files (x86)\\Meld\\meld\\meld.exe
keepBackup = false
trustExitCode = false
所以,当我有冲突时,我会使用git difftool,而Meld实际上会打开。但是,Git写入并传递给diff工具的文件路径是不正确的。例如,即使Git在repository目录(我调用git mergetool的位置)中生成BASE、LOCAL和REMOTE文件,Meld也会尝试在可执行文件的目录中打开这些文件。
Meld没有打开C:\repo\roses.txt.LOCAL.2760.txt,而是尝试打开C:\Program Files(x86)\Meld\meld\roses.txt.LOCAL.2760.txt。
有没有人遇到过这种情况,或者知道如何配置Git / Meld在Windows中正确工作?
9条答案
按热度按时间vh0rcniy1#
为什么不使用git bash for Windows?
安装后只需合并:
就这些!
dfuffjeb2#
Schuess,小心目录中的空格字符!
c9qzyr3d3#
如何使用meld代替
git diff
作为您的git difftool
(see下面的截图也是meld的):
1. Windows:
下载并安装Git for Windows,它包含一个类似于Linux的"Git Bash"终端,一旦安装了Git for Windows,就可以通过Windows资源管理器中任何文件夹的右键菜单访问。
从这里下载并安装meld:https://meldmerge.org/。
然后,要使
meld
成为您的git difftool
,您可以在Git for Windows bash终端(as Arugin says)中使用这两个命令,并使用正确的Meld.exe路径。注意:对于旧版本的Windows,您的路径可能是"C:\Program Files (x86)\Meld\Meld.exe"
。或者你可以直接编辑你的
C:\Users\YOUR_USER_NAME\.gitconfig
文件,然后在它的末尾添加以下内容(注意这里必须使用双反斜杠[\\
]作为路径分隔符!)。注意:同样,对于旧版本的Windows,您的路径可能是C:\\Program Files (x86)\\Meld\\Meld.exe
:现在在你的Git for Windows bash终端中调用
git difftool
,Meld将作为默认的difftool查看器打开!如果你还不知道:你可以在Windows资源管理器中的文件夹中右键单击并转到-->“Git Bash”或其他名称来打开该终端。2. Linux:
我也可以把Linux指令放在这里,如果没有其他的话,我自己也可以在一个地方参考:
对于Linux来说,这更容易:
然后添加到. gitconfig文件的底部:
git difftool
现在可以在Linux Ubuntu上运行了!3. Mac OS
在Mac OS上安装Meld:www.example.com的网站。https://superuser.com/questions/360007/how-to-install-meld-with-homebrew-on-mac-osx/1177575#1177575.
融合示例截图
(source)
合并的用法
使用
meld
在本地查看他人的GitHub PR1.命令仅
1.带有详细注解的命令
相关:
1.关于how to compare binary files, hex files, and Intel hex firmware files with
meld
1.[我在
git blametool
上的回答]有类似于bzr qannotate的git blame gui吗?1.从这里下载并安装meld:https://meldmerge.org/
1.[我的回答]如何让git使用我选择的编辑器来编辑提交消息?
1.[我的仓库] https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles
1.在Mac OS上安装Meld:www.example.com https://superuser.com/questions/360007/how-to-install-meld-with-homebrew-on-mac-osx/1177575#1177575
qxgroojn4#
我有完全相同的问题,发现我必须蛮力我的方式让它工作。下面是我在.gitconfig文件中的内容。(注意我的meld可执行文件在不同的位置)
eivgtgni5#
我在meld安装程序的错误报告中找到了解决方案,在此页面上:
https://code.google.com/p/meld-installer/issues/detail?id=11
据我所知,问题是meld.exe程序(通过python解释器运行meld)不必要地将命令的工作目录设置为meld.exe的工作目录。这会导致相对路径在作为命令行参数传递时被错误地解释。
解决方案是使用AHK 2 EXe(AutoHotKey脚本-> exe)将提供的meld.exe替换为通过编译meld.ahk文件生成的文件。只要下载脚本最远的网页,因为有几个版本张贴在那里。
l7wslrjt6#
我也遇到了类似的问题。使用的操作系统是Windows 10,以下更改对我有效。这似乎更像是路径问题
gfttwv5a7#
由于某种原因,在Windows 10中,PATH环境变量在安装过程中无法正确设置,因此会出现一个奇怪的异常,即无法找到“C:\Program Files(x86)/Meld/bin”目录下的一些.dll。
我的解决方法是,在git bash中执行:
或添加到Windows PATH
sgtfey8w8#
没有一个答案对我有用。我在. gitconfig文件中完成了以下操作:
在
git merge mybranch
以冲突结束后,只需键入git mergetool
,meld就会打开。保存后,你必须在git中提交,冲突就解决了。由于某种原因,这只适用于Meld 3.18.x,Meld 3.20.x给了我一个错误。
tjjdgumg9#
在尝试了以上所有方法后,将Meld设置为以管理员身份运行对我来说很有效。
1.右键单击Meld.exe
1.进入属性>兼容性,选中
Run this program as an administrator
复选框我收到的错误引用了像
c:\windows\temp\meld-*
这样的临时文件,这些文件没有被创建。提升Meld的权限似乎可以做到这一点,因为它现在既可以在git difftool
上运行,也可以在Meld中手动运行。