你好,我正在尝试将opendiff作为git mergetool使用,但当我运行mergetool时,出现以下错误信息:
合并工具opendiff不可用作 'opendiff'
我做错了什么?之前它一直正常运行,但自从我安装了新的硬盘后就无法正常工作了 :(
您需要将opendiff配置为全局合并工具:
# 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并接受许可证即可解决问题。git
还没有被找到时,但很难理解你可能会如何陷入这种情况。 - Tommyopendiff
, 但是两天前我安装了rvm
并安装了最新的Ruby 2.6.3……然后opendiff
停止工作了,报告了 "xcode-select: error: tool 'opendiff' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance"。你的第一行xcode-select
修复了这个问题...但是它感觉很神秘,不知道究竟发生了什么。 - nonopolarity请确保您已经安装了XCode。(如果您正在使用git,则可能使用brew,在这种情况下,您可能已经安装了XCode。)
一次性的解决方案是告诉git你想要使用的工具:
$ git mergetool -t opendiff
如果要将opendiff设置为默认工具,您需要在git配置文件中设置“merge.tool”变量。
#!/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
这样调用它: