如何在 Mac OS 中设置 kdiff3?

How to setup kdiff3 in Mac OS?

.gitconfig 文件中,我设置了 git 差异如下:

[diff]
    tool = kdiff3

[difftool "kdiff3"]
    path = path_directory/kdiff3.app

在此设置中,kdiff 不可访问,当我在终端 运行

中时,我得到以下 error
>> git difftool
The diff tool kdiff3 is not available as 'Kdiff_local_software_path/kdiff3.app'
fatal: external diff died, stopping at modified_file

你有什么建议可以解决这个问题吗?在我当前的设置中 Mac OS 10.10.5 git diff 工具是 git merge tool 我想用 kdiff 替换它。

kdiff3一般位于以下位置:

/Applications/kdiff3.app/Contents/MacOS/kdiff3

所以,试试

[difftool "kdiff3"]
    path = /Applications/kdiff3.app/Contents/MacOS/kdiff3

如果您使用 brew 安装了 kdiff,那么从 git 1.8 开始,您不需要在配置中使用 difftool 参数。只需以下内容即可:

[diff]
    tool = kdiff3

如果您安装了 kdiff 将 dmg 文件安装到 kdiff.app 然后设置您的本地路径如下:

[difftool "kdiff3"]
    path = directory_path_where_you_installed/kdiff3.app/Contents/MacOS/kdiff3
  1. 下载 kdiff3 并安装为应用程序(将 kdiff3 拖放到您的应用程序中): http://sourceforge.net/projects/kdiff3/files/kdiff3/0.9.98/kdiff3-0.9.98-MacOSX-64Bit.dmg/download

  2. 设置 git 配置工具如下,适用于我在 MacBook Pro 上:

git config --global merge.tool kdiff3

和:

git config --global mergetool.kdiff3.cmd '/Applications/kdiff3.app/Contents/MacOS/kdiff3 $BASE $LOCAL $REMOTE -o $MERGED'

您不需要像其他答案中描述的那样向您的 gitconfig 添加任何路径。 这就是你需要在 .gitconfig

中配置的全部内容
[diff]
    guitool = kdiff3
[merge]
    tool = kdiff3

假设您的计算机上安装了自制软件:

brew update
brew tap caskroom/cask
brew cask install kdiff3

解释:

  1. 设置使用 cask

    brew tap caskroom/cask
    
  2. 下载 kdiff3,将其移动到您的应用程序目录并将 kdiff3.sh 链接到 /usr/local/bin/kdiff3

    brew cask install kdiff3
    
  1. 首先检查kdiff3是否安装并被git识别:

    $ type -a kdiff3
    -bash: type: kdiff3: not found
    

    如果 kdiff3 未安装在 macOS 中,git 也会显示以下消息:

    $ git difftool --tool-help
    $ # OR (both command would do)
    $ git mergetool --tool-help
    'git mergetool --tool=<tool>' may be set to one of the following:
            emerge
            opendiff
            vimdiff
            vimdiff2
            vimdiff3
    
    The following tools are valid, **but not currently available**:
            ...
            gvimdiff3
            kdiff3
            meld
            ...
    
    Some of the tools listed above only work in a windowed
    environment. If run in a terminal-only session, they will fail.
    

  1. 那我们就应该安装kdiff3,方法有很多种:

    个人比较喜欢MacPort:

    $ port search kdiff3
    kdiff3 @0.9.98_4 (devel)
        kdiff3 is a file comparing and merging tool.
    $ sudo port install kdiff3
    ...installing process...
    

    在此之后,kdiff3 应该可用于 macOS 和 git

    $ type -a kdiff3
    kdiff3 is /opt/local/bin/kdiff3
    $ git difftool --tool-help
    'git difftool --tool=<tool>' may be set to one of the following:
            emerge
            kdiff3
            opendiff
            ...
    

  1. 最后,确保git配置正确:

    [diff]
        tool = kdiff3
    [difftool]
        prompt = false
    [merge]
        tool = kdiff3
        conflictstyle = diff3
    

如果您使用 brew 安装 kdiff3,这里是更新的命令

酿造水龙头homebrew/cask

brew 安装 kdiff3 --cask