23

.gitconfig文件中,我设置了 git diff,如下所示:

[diff]
    tool = kdiff3

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

在此设置中,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

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

4

4 回答 4

25

kdiff3一般位于以下位置:

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

所以,试试

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

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

[diff]
    tool = kdiff3

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

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

  2. 如下设置 git config 工具,适用于 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'

于 2017-08-14T06:31:51.430 回答
9
  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
    
于 2019-03-20T17:07:31.063 回答
5

您不需要像其他答案中所述向 gitconfig 添加任何路径。这就是您需要在 .gitconfig 中配置的所有内容

[diff]
    guitool = kdiff3
[merge]
    tool = kdiff3

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

brew update
brew tap caskroom/cask
brew cask install kdiff3

解释:

  1. 设置使用木桶

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

    brew cask install kdiff3
    
于 2018-12-24T11:09:30.157 回答