如何配置kdiff3而不是emerge作为git mergetool?

AKF*_*ven 55 git macos merge config kdiff3

我在mac OSX Snow Leopard上有Git,我试图编辑我的merge和diff工具来使用kdiff3而不是emerge.

但是当我尝试使用它时,它不会启动kdiff的GUI并让我使用基于cmd的界面.

我在gitconfig中的设置是:

[merge]
     tool = kdiff3
[mergetool "kdiff3"]
    cmd = /Applications/kdiff3.app/Contents/MacOS/kdiff3
    args = $base $local $other -o $output
    trustExitCode = false
[diff]
tool = kdiff3
[difftool "kdiff3"]
cmd = /Applications/kdiff3.app/Contents/MacOS/kdiff3
args = $base $local $other -o $output
trustExitCode = false
Run Code Online (Sandbox Code Playgroud)

显然有些东西不见了,但我做错了什么?

ssc*_*rth 141

最近的Git版本具有内置支持kdiff3,因此无需使用通用cmdargs设置手动配置它.相反:

$ git config --global merge.tool kdiff3
Run Code Online (Sandbox Code Playgroud)

如果kdiff3不在你的PATH环境中也做:

$ git config --global mergetool.kdiff3.path /Applications/kdiff3.app/Contents/MacOS/kdiff3
Run Code Online (Sandbox Code Playgroud)

这使得git mergetool发布kdiff3.请注意,有冲突的手动合并之后,无法将Git配置为自动启动合并工具.

如果您真的想看看Git如何在kdiff3内部调用,请查看kdiff3的内置mergetool配置.

编辑:对于除了比较4,现在还支持Mac OS X,简单地交换kdiff3bc3(是的,"3"),并调整在上述线的路径.从Git 2.2.0开始,您将能够bc用作别名,bc3这样您就不必关心版本号.

  • 我还是要安装kdiff3.如果你有自制软件,它就像`brew install kdiff3`一样简单.这应该足以将kdiff3放在路径中. (6认同)
  • git config --global diff.tool kdiff3 (2认同)