【问题标题】:Setting up and using Meld as your git difftool and mergetool on a Mac在 Mac 上设置和使用 Meld 作为你的 git difftool 和 mergetool
【发布时间】:2017-09-05 04:11:03
【问题描述】:

如何在 MacOS 上安装 Meld,然后在 git 中将其设置为我的 difftool 和 mergetool?

【问题讨论】:

    标签: macos merge diff git-config meld


    【解决方案1】:
    1. 从此处下载适用于 Mac 的最新 .dmg 软件包:Meld for OSX

    2. 通过编辑您的~/.gitconfig 并添加以下行,将 meld 设置为您的 git difftool/mergetool,如上述链接中所述:

      [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\"
      
    3. 在您的存储库中使用 git difftool 命令来比较和编辑修订版之间的文件。

    【讨论】:

    • 我找不到融合命令。你是怎么融入 /usr/local/bin 的?
    • $PWD 部分对我来说丢失了,以前似乎不需要它。谢谢!
    • git difftool 有时为您提供相对路径,有时为绝对路径。看起来 Meld 不能很好地处理这个,所以你需要做一些类似\"$([[ "$REMOTE" == /* ]] && echo "$REMOTE" || echo "$PWD/$REMOTE")\"
    【解决方案2】:

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

    安装 Meld

    brew tap homebrew/cask

    brew cask install meld

    将 Meld 设置为 Git Mergetool

    git config --global merge.tool meld

    git config --global diff.guitool meld

    【讨论】:

    • 如果您没有安装 brew,请先按照此处的说明进行操作:brew.sh
    • 如果您使用的是企业/防火墙网络,请务必设置您的 http 和 https 代理。 export http_proxy=<YOUR_PROXY_HOST>:<PORT>export https_proxy=<YOUR_SECURE_PROXY_HOST>:<PORT>然后运行上面的步骤。
    • 由于某种原因,当我使用自制版本的meld时,meld会出现在dock中,关闭,然后重新打开,但实际上并没有打开任何meld窗口;该图标将只是坐在码头上什么都不做。
    • 我目前有与 Alexej Magura 相同的经验,其他答案中建议的 .gitconfig 似乎也不起作用
    • 第二个命令,我必须在Apple M1上使用brew install --cask meld
    【解决方案3】:

    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
    

    【讨论】:

      猜你喜欢
      • 2016-03-11
      • 2020-12-27
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多