我想使用 opendiff 作为 git diff 的默认差异工具。这曾经有效,但由于某种原因停止工作。我正在使用一个脚本:
echo opendiff $2 $5 > opendiff-git.sh
在 .gitconfig 中设置:
[diff]
external = ~/opendiff-git.sh
这最近对我不起作用。怎么了?
更新:当我克隆一个新的存储库时,一切正常!奇怪的!
确保您的opendiff-git.sh
文件设置了可执行位:
chmod +x ~/opendiff-git.sh
我在尝试将 opendiff 设置为我的 git diff & merge 工具时发现了这个问题。奇怪的是,当我使用 echo opendiff $2 $5 > opendiff-git.sh 创建脚本时,该脚本不包含参数占位符 $2 $5 我手动添加它们并开始工作!
这个命令
echo opendiff $2 $5 > opendiff-git.sh
导致 opendiff-git.sh 文件包含
opendiff
我手动添加了两个参数占位符 $2 $5
opendiff $2 $5
按照 knittl 的建议使 shell 脚本可执行
chmod +x ~/opendiff-git.sh
它有效!
您现在可以使用 指定默认工具git config
。要使用 FileMerge,即opendiff
运行:
git config --global diff.tool opendiff
如果您查看~/.gitconfig
文件,您现在应该看到:
[diff]
tool = opendiff
它现在应该可以工作了。