嗨,我尝试使用了opendiff作为git的合并工具,但是当我运行合并工具我收到此错误信息:
合并工具了opendiff不作为“了opendiff”
我究竟做错了什么? 它以前工作正常,但因为我安装了一个新的硬盘它不工作了:(
嗨,我尝试使用了opendiff作为git的合并工具,但是当我运行合并工具我收到此错误信息:
合并工具了opendiff不作为“了opendiff”
我究竟做错了什么? 它以前工作正常,但因为我安装了一个新的硬盘它不工作了:(
你需要了opendiff配置为全局merge.tool:
# locate xcode utilities
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
# set "opendiff" as the default mergetool globally
git config --global merge.tool opendiff
如果得到Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo
,打开Xcode和接受许可修复该问题
请确保你已经安装了XCode。 (如果你使用Git,那么你可能使用BREW,在这种情况下,你可能已经安装的XCode。)
一次性的解决方法是告诉你要使用git什么工具:
$ git mergetool -t opendiff
至于设立了opendiff为默认工具,你需要设置“merge.tool”变量使用Git的配置文件。
git的支持--dir-DIFF(-d)执行目录比较,这看起来很不错FileMerge。 然而,在使用了opendiff与--dir-DIFF几个小问题。 了opendiff没有--merge预定目标,并git会过早地删除临时文件保存更改。 我的解决办法是使用一个小的bash脚本调用FileMerge。 我把它叫做gdiff
。
#!/bin/bash
# find top level of git project
dir=$PWD
until [ -e "$dir/.git" ]; do
if [ "$dir" == "/" ]; then
echo "Not a git repository" >&2
exit 1;
fi
dir=`dirname "$dir"`
done
# open fresh FileMerge and wait for termination
open -a FileMerge -n -W --args -left "$1" -right "$2" -merge "$dir"
https://gist.github.com/miner/e73fc98a83a8fe05d9ef000d46d68a9f
这样称呼它:
git difftool -d -x gdiff