Як встановити 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

інструмент працює.



Скопіювати вставні частини .gitconfigз: marcin-chwedczuk.github.io/use-meld-as-git-merge-diff-tool
csharpfolk

Пов'язаний: «Налаштування відмінностей інструменту з .gitconfig»: stackoverflow.com/a/6412645/4561887 (для Meld, просто замініть vimdiffз meldв цій відповіді)
Габріель Скоби

Будь ласка, коментуйте та голосуйте за випускну версію, щоб майбутньому користувачеві навіть не потрібно було турбуватися про це.
Франклін Ю

Відповіді:


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

Це те, що описано в " Як змусити працювати з git у Windows "

Або ви можете застосувати підхід до обгортки, описаний у " Використовуйте поєднання з Git у 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 згадує в коментарях до Mac OS про встановлення домашньої мови , а потім:

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

@abergmeier Добре, я включив ваш коментар у відповідь для більшої видимості.
VonC

Рішення @ abergmeier працює. Крім того, у вікні git bash, якщо ви введете tabключ, він запропонує шлях, щоб його було легко виправити.
Асвін Кумар,

3
FYI, на Mac OSx: встановіть homebrew , потім:$ brew install homebrew/x11/meld $ git config --global merge.tool meld $ git config --global diff.guitool meld
CenterOrbit

@CenterOrbit Добре, я включив ваш коментар у відповідь для більшої видимості.
VonC

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
Майкл Блейк

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
faidherbard

Мелд неправильно зберег об’єднані файли під час використання цього шаблону командного рядка. Дивіться stackoverflow.com/a/40777256/768795 для відповіді, яка працює.
Thomas W

6

Я думаю, що це mergetool.meld.pathповинно вказувати безпосередньо на сумісний виконуваний файл. Таким чином, потрібна команда:

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

5

Жодна з інших відповідей тут не спрацювала для мене, можливо, завдяки спробі поєднати їх усі. Я зміг адаптувати цю прийняту відповідь до роботи зі сумішшю. Зараз це працює для мене з 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

Для вікон додайте шлях до meld, як показано нижче:

 git config --global mergetool.meld.path C:\\Meld_run\\Meld.exe
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.