在Mac上设置和使用Meld作为您的git差异比较工具和合并工具

31

我该如何在MacOS上安装Meld,并将其设置为我的git差异和合并工具?

3个回答

52
  1. 从这里下载最新的Mac .dmg包:Meld for OSX

  2. 按照上面链接中提到的方式,通过编辑~/.gitconfig文件并添加以下行,将Meld设置为您的git差异工具/合并工具:

  3. [diff]
      tool = meld
    [difftool]
      prompt = false
    [difftool "meld"]
      trustExitCode = true
      cmd = open -W -a Meld --args \"$LOCAL\" \"$PWD/$REMOTE\"
    [merge]
      tool = meld
    [mergetool]
      prompt = false
    [mergetool "meld"]
      trustExitCode = true
      cmd = open -W -a Meld --args --auto-merge \"$PWD/$LOCAL\" \"$PWD/$BASE\" \"$PWD/$REMOTE\" --output=\"$PWD/$MERGED\"
    
  4. 在您的仓库中使用git difftool命令,比较和编辑不同版本之间的文件。


2
我收到了“meld命令未找到”的错误提示。你是如何将meld安装到/usr/local/bin目录下的? - techguy2000
我的代码中缺少了$PWD部分,似乎以前不需要它。谢谢! - Bruno Medeiros
2
git difftool有时会给你相对路径,有时会给你绝对路径。看起来Meld无法很好地处理这个问题,所以你需要做一些像\"$([[ "$REMOTE" == /* ]] && echo "$REMOTE" || echo "$PWD/$REMOTE")\"这样的事情。 - pcv

22

来自 Mac OS High Sierra(10.13.6),Git 2.12.2

安装 Meld

brew tap homebrew/cask

brew cask install meld

设置 Meld 为 Git 合并工具

git config --global merge.tool meld

git config --global diff.guitool meld


如果您尚未安装brew,请先按照此处的说明进行安装:https://brew.sh/ - Joey Morrow
如果您在公司/防火墙网络上,请确保设置您的http和https代理。export http_proxy=<YOUR_PROXY_HOST>:<PORT>export https_proxy=<YOUR_SECURE_PROXY_HOST>:<PORT>然后运行上述步骤。 - Joey Morrow
由于某种原因,当我使用Meld的Homebrew版本时,Meld会出现在Dock中,关闭,然后重新打开,但实际上没有Meld窗口会打开;图标只是坐在Dock里什么也不做。 - Alexej Magura
我目前和Alexej Magura有相同的经历,其他答案中建议的.gitconfig似乎也没有起作用。 - Colin D
2
对于第二个命令,我必须在 Apple M1 上使用 brew install --cask meld - Higgs

11

2021 年开始可行的解决方案

  • 操作系统: Mac OS Big Sur (11.3.1)
  • Git 版本: Git 2.30.1

安装

brew tap homebrew/cask
brew install --cask meld

设置

git config --global merge.tool meld
git config --global  diff.guitool meld

使用方法

git mergetool # When file conflicts happen during merge

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接