如何将Meld设置为git mergetool


95

我已经设定:

git config --global merge.tool meld
git config --global mergetool.meld.path c:/Progra~2/meld/bin/

在“ git mergetool”上写道:

Hit return to start merge resolution tool (meld):
The merge tool meld is not available as 'c:/Progra~2/meld/bin/'

我也尝试过:

  • / c / Progra〜2 / meld / bin /
  • “ / c /程序文件(x86)/ meld / bin /”
  • “ c:/程序文件(x86)/ meld / bin /”

结果是一样的。

当我转到C:/ Program Files(x86)/ meld / bin /并运行

python meld

工具运行。



复制以下来源的粘贴部分.gitconfigmarcin-chwedczuk.github.io/use-meld-as-git-merge-diff-tool
csharpfolk

相关:“使用.gitconfig配置差异工具”:stackoverflow.com/a/6412645/4561887(对于融合,请在此答案中替换vimdiffmeld
Gabriel Staples,

请对上游问题发表评论并投票,这样将来的用户甚至不必担心。
富兰克林·于

Answers:


71

您可以使用完整的Unix路径,例如:

PATH=$PATH:/c/python26
git config --global merge.tool meld
git config --global mergetool.meld.path /c/Program files (x86)/meld/bin/meld

这是“ 如何在Windows上使用git进行融合 ”中描述的内容

或者你也可以采取在“中描述的包装方法使用MELD在Windows上使用Git

# set up Meld as the default gui diff tool
$ git config --global  diff.guitool meld

# set the path to Meld
$ git config --global mergetool.meld.path C:/meld-1.6.0/Bin/meld.sh

使用脚本meld.sh

#!/bin/env bash
C:/Python27/pythonw.exe C:/meld-1.6.0/bin/meld $@

abergmeier 在评论中提到:

我必须做:

git config --global merge.tool meld
git config --global mergetool.meld.path /c/Program files (x86)/Meld/meld/meldc.exe

请注意,meldc.exe是专门为通过控制台在Windows上调用而创建的。因此,meld.exe将无法正常工作。


CenterOrbit在Mac OS 的注释中提到要安装homebrew,然后:

brew cask install meld
git config --global merge.tool meld
git config --global  diff.guitool meld

3
对我来说,我必须做:git config --global merge.tool meld git config --global mergetool.meld.path /c/Program files (x86)/Meld/meld/meldc.exe
阿伯格迈尔(Abergmeier)2014年

@abergmeier好的,我已在答案中加入您的评论,以提高知名度。
VonC 2014年

@abergmeier的解决方案有效。另外,在Windows git bash上,如果您tab输入密钥,它将提示该路径,因此很容易正确地进行设置。
Aswin Kumar 2014年

3
仅供参考,在Mac OSx上:安装homebrew,然后:$ brew install homebrew/x11/meld $ git config --global merge.tool meld $ git config --global diff.guitool meld
CenterOrbit 2015年

@CenterOrbit好的,我已在答案中加入您的评论,以提高可见度。
VonC 2015年

24

这在Windows 8.1和Windows 10上对我有用。

git config --global mergetool.meld.path "/c/Program Files (x86)/meld/meld.exe"

6
git config --global mergetool.meld.path "c:\Program Files (x86)\meld\meld.exe"使用PowerShell时
Michael Blake

11

融合3.14.0

[merge]
    tool = meld
[mergetool "meld"]
    path = C:/Program Files (x86)/Meld/Meld.exe
    cmd = \"C:/Program Files (x86)/Meld/Meld.exe\" --diff \"$BASE\" \"$LOCAL\" \"$REMOTE\" --output \"$MERGED\"

请注意,这是一个被遗弃的问题。我已经很长时间没有使用合并工具了,因此即使您的答案是最好的,我也无法证明它并将其标记为答案。
保罗

您好,我已经尝试过了,效果很好。就我而言,正是“ cmd”缺失了,因此无法正确地称其为
熔体

使用此命令行模板时,Meld没有为我正确保存合并的文件。有关有效的答案,请参见stackoverflow.com/a/40777256/768795
Thomas W

6

我认为mergetool.meld.path应该直接指向Meld可执行文件。因此,您想要的命令是:

git config --global mergetool.meld.path c:/Progra~2/meld/bin/meld

5

这里的其他答案都没有对我有用,可能是尝试将它们全部组合而成。我能够调整这个公认的答案,使其与Meld一起工作。现在这适用于git 1.9.4,meld 3.14.0和Windows 8.1。

编辑〜/ .gitconfig如下所示:

[diff]
    tool = meld
    guitool = meld
[mergetool "meld"]
    path = c:/Program Files (x86)/Meld/Meld.exe
[difftool "meld"]
    path = c:/Program Files (x86)/Meld/Meld.exe

2

安装后http://meldmerge.org/ 我不得不告诉git它在哪里:

git config --global merge.tool meld
git config --global diff.tool meld
git config --global mergetool.meld.path “C:\Program Files (x86)\Meld\meld.exe”

这似乎可行。使用“ git difftool”或“ git mergetool”进行合并和比较

如果有人在启动后遇到诸如Meld崩溃的问题(python问题指示),那么您需要将Meld / lib设置为系统环境变量,如下所示 C:\Program Files (x86)\Meld\lib


0

对于Windows,添加融合的路径如下所示:

 git config --global mergetool.meld.path C:\\Meld_run\\Meld.exe
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.