我经常使用Atlassian (在Mac上)启动FileMerge来解决git合并冲突。它突然停止工作:当我右键单击并选择Resolve Conflicts > Launch External Merge Tool时,FileMerge启动并创建其中间文件,然后立即退出。SourceTree将其解释为合并过程正在完成。
有什么问题,我如何调试/修复它?
我注意到,前面的问题“SourceTree filemerge quits immediately and creates 4 files. How to fix it?”并不涉及这个特定的场景(例如,它在标题中说FileMerge退出,但在正文中它说FileMerge将/dev/null显示为其中一个面板)。另外,我的合并冲突不是由于删除的文件造成的。)
发布于 2017-01-05 17:09:14
为了诊断这个问题,我从终端运行了opendiff。我收到以下错误:
选择:错误:工具'opendiff‘需要Xcode,但是active developer目录'/Library/Developer/CommandLineTools’是一个命令行工具实例
解决:

opendiff,上面的错误将不再出现。现在,当您单击FileMerge启动外部合并工具时,SourceTree将正确打开。
发布于 2017-07-18 12:25:56
对我来说,SourceTree甚至没有推出FileMerge。当单击启动外部合并工具时,什么都没有发生。
此外,在终端中运行opendiff也如预期的那样:
$ opendiff
opendiff[64176:5561154] too few arguments
opendiff[64176:5561154] usage: opendiff file1 file2 [-ancestor ancestorFile] [-merge mergeFile]帮助我的是手动配置SourceTree,通过带有以下参数的opendiff命令使用FileMerge:$LOCAL $REMOTE -ancestor $BASE -merge $MERGED

这样,SourceTree按预期的方式打开FileMerge。
发布于 2018-09-07 11:00:46
这很有帮助:https://gist.github.com/kylefox/4512777
当Xcode实用程序运行时,告诉system:
sudo选择-switch /Applications/Xcode.app/Contents/Developer
将"opendiff“设置为默认的全局合并工具:
git配置--全局merge.tool opendiff
https://stackoverflow.com/questions/32729049
复制相似问题