为何我的 .gitconfig 不起作用?(针对外部差异)

为何我的 .gitconfig 不起作用?(针对外部差异)

我添加了这个~/.gitconfig

[diff]
    external = mvimdiff

[difftool]
    prompt = false

并制作了 755 /bin/mvimdiff

#!/bin/sh

mvim -d "$2" "$5"

为了调用 MacVim 作为我的 git diff 工具。但是当我git diff在 git 文件夹中运行命令时,它仍然将结果从正常输出diff到 shell。根本没有 MacVim。我确定没有.git/config覆盖.gitconfig,并且我尝试重新启动计算机以刷新。为什么配置不起作用?

谢谢。

答案1

您可能最好使用git difftool来调用“交互式”差异工具。例如:

使内置gvimdiff工具适应于mvim

git config --global diff.tool gvimdiff
git config --global difftool.gvimdiff.path mvim

或者mvimdiff从头开始配置:

git config --global diff.tool mvimdiff
git config --global difftool.mvimdiff.cmd 'mvim -f -d "$LOCAL" "$REMOTE"'

然后运行git difftool查看每个不同的文件MacVim


如果你真的想git diff使用MacVim,那么你可以像这样配置它(不需要任何外部脚本文件):

git config diff.external 'd() { mvim -f -d "$2" "$5"; }; d'

无论哪种方式,您都需要确保适当的文件mvim在您的 PATH 中。此外,您需要使用选项-f(“不分叉”/“在前台运行”),否则git diff可能会在执行之前删除临时文件MacVim有机会读取它们(每次调用至少有一个文件是临时文件)。

相关内容