我想使用opendiff作为git diff的默认差异工具。这曾经可以工作,但是由于某种原因停止了工作。
我正在使用脚本:

echo opendiff $2 $5 > opendiff-git.sh

在.gitconfig中设置的:
[diff]
external = ~/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

而且有效!

08-26 10:43