我已经设定:
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:/ Program files(x86)/ meld / bin /并运行
时python meld
该工具运行。
答案 0 :(得分:62)
您可以使用完整的unix路径,例如:
PATH=$PATH:/c/python26
git config --global merge.tool meld
git config --global mergetool.meld.path /c/Program files (x86)/meld/bin/meld
这是“How to get meld working with git on Windows”
中描述的内容或者您可以采用“Use Meld with Git on Windows”
中描述的包装方法# 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 $@
我必须这样做:
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在the comments中提及Mac OS安装homebrew,然后:
brew cask install meld
git config --global merge.tool meld
git config --global diff.guitool meld
答案 1 :(得分:21)
这适用于Windows 8.1和Windows 10。
git config --global mergetool.meld.path "/c/Program Files (x86)/meld/meld.exe"
答案 2 :(得分:9)
meld 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\"
答案 3 :(得分:5)
我认为mergetool.meld.path
应该直接指向meld可执行文件。因此,您想要的命令是:
git config --global mergetool.meld.path c:/Progra~2/meld/bin/meld
答案 4 :(得分:5)
这里没有其他答案对我有用,可能是尝试了所有这些答案的组合。我能够使this accepted answer适应与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
答案 5 :(得分:1)
安装后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
答案 6 :(得分:1)
花了一些时间才能让Meld在Windows上正常工作。这是我当前的.gitconfig:
[merge]
conflictstyle = diff3
tool = meld
[mergetool "meld"]
cmd = \"C:\\Program Files (x86)\\Meld\\Meld.exe\" --auto-merge \"$LOCAL\" \"$BASE\" \"$REMOTE\" --output \"$MERGED\"
Linux:
[merge]
conflictstyle = diff3
tool = meld
[mergetool "meld"]
cmd = meld --auto-merge $LOCAL $BASE $REMOTE --output=$MERGED --diff $BASE $LOCAL --diff $BASE $REMOTE
我相信添加conflictstyle = diff3
会更改内联文本,以在meld到达输出文件之前在输出文件中包含BASE内容,这可能会使它抢先一步。不确定。
现在,由于我已经指出Meld支持三路合并,因此还有另一种选择。当设置了“ diff3” git冲突样式时,Meld在显示BASE内容的行上打印“(??)”。 source
我非常喜欢的一些融合命令行功能:
--auto-merge
在为您选择合适的东西方面做得很好(这不是防弹,但我认为节省的时间值得承担任何风险)。
您可以在同一命令中添加额外的差异窗口。例如:
--diff $BASE $LOCAL --diff $BASE $REMOTE
将再添加两个带有本地和传入补丁差异的选项卡。从三向视图中分开查看这些差异非常有用,以查看每个分支中与基础的差异。我无法在Windows上正常工作。
某些版本的meld允许您使用--label
标记标签。在git修复传递给meld的文件名称包含本地/基本/远程文件之前,这一点更为重要。
--diff
的顺序可能会影响制表符的顺序。我遇到了一些较旧的版本的问题,这些旧版本将附加差异放在首位,而主要的三向差异则更常用。
答案 7 :(得分:0)
对于 windows ,添加meld的路径如下所示:
git config --global mergetool.meld.path C:\\Meld_run\\Meld.exe
答案 8 :(得分:0)
在 C:\Users\username 的 .gitconfig 文件中添加以下几行,解决了我在 Windows 10 中 3.20.3 的问题。
[user]
name = doe
email = doe@john.com
[core]
longpaths = true
[diff]
tool = meld
[difftool "meld"]
path=C:/Program Files/Meld/Meld.exe
[difftool]
prompt = false
[merge]
tool = meld
[mergetool "meld"]
path=C:/Program Files/Meld/Meld.exe
[mergetool]
prompt = false
KeepBackup = false