如何在Mac OS中设置kdiff3?

J4c*_*4cK 18 git osx-leopard git-diff kdiff3 git-difftool

.gitconfig文件中我按如下方式设置了git diff:

[diff]
    tool = kdiff3

[difftool "kdiff3"]
    path = path_directory/kdiff3.app
Run Code Online (Sandbox Code Playgroud)

在此设置中,无法访问kdiff,当我在终端中运行时出现以下错误

>> git difftool
The diff tool kdiff3 is not available as 'Kdiff_local_software_path/kdiff3.app'
fatal: external diff died, stopping at modified_file
Run Code Online (Sandbox Code Playgroud)

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

hjp*_*r92 18

kdiff3 通常位于以下位置:

/Applications/kdiff3.app/Contents/MacOS/kdiff3
Run Code Online (Sandbox Code Playgroud)

所以,试试吧

[difftool "kdiff3"]
    path = /Applications/kdiff3.app/Contents/MacOS/kdiff3
Run Code Online (Sandbox Code Playgroud)

如果你安装了kdiff使用brew,那么你不需要difftool在配置中使用git 1.8以上的参数.只需以下方法即可:

[diff]
    tool = kdiff3
Run Code Online (Sandbox Code Playgroud)

如果您安装kdiff了dmg文件,kdiff.app则设置本地路径如下:

[difftool "kdiff3"]
    path = directory_path_where_you_installed/kdiff3.app/Contents/MacOS/kdiff3
Run Code Online (Sandbox Code Playgroud)

  • @ J4cK更新`path`以反映`kdiff3.app/Contents/MacOS/kdiff3`的实际位置. (2认同)

YaO*_*OzI 9

  1. 首先检查是否kdiff3安装和识别git

    $ type -a kdiff3
    -bash: type: kdiff3: not found
    
    Run Code Online (Sandbox Code Playgroud)

    如果kdiff3macOS 中未安装,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.
    
    Run Code Online (Sandbox Code Playgroud)

  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...
    
    Run Code Online (Sandbox Code Playgroud)

    在此之后,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
            ...
    
    Run Code Online (Sandbox Code Playgroud)

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

    [diff]
        tool = kdiff3
    [difftool]
        prompt = false
    [merge]
        tool = kdiff3
        conflictstyle = diff3
    
    Run Code Online (Sandbox Code Playgroud)


小智 7

  1. 下载kdiff3并安装为app(将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'

  • 这有效+进入系统偏好设置 - &gt;安全和隐私 - &gt;常规 - &gt;如果您在尝试打开它时遇到安全错误,请按按钮打开kdiff3。 (3认同)

Ilk*_*Cat 5

如其他答案中所述,您无需向 gitconfig 添加任何路径。这就是您需要在 .gitconfig 中配置的全部内容

[diff]
    guitool = kdiff3
[merge]
    tool = kdiff3
Run Code Online (Sandbox Code Playgroud)

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

brew update
brew tap caskroom/cask
brew cask install kdiff3
Run Code Online (Sandbox Code Playgroud)

解释:

  1. 设置使用桶

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

    brew cask install kdiff3
    
    Run Code Online (Sandbox Code Playgroud)

  • 截至 2019 年 8 月,抛出以下错误“错误:Cask 'kdiff3' 不可用:不存在具有此名称的 Cask。” (5认同)