我们是使用git控制我们项目的版本。在OS X下开发,我们希望使用随开发工具一起分发的FileMerge应用程序来显示git生成的差异:
如果我们理解正确,可以通过git difftool
配置其调用。
根据不同来源的建议,我们在全局git配置文件中添加了这个:
[diff]
tool = opendiff
它适用于“逐个文件”差异。但我们更喜欢在工具中同时加载目录差异,命令为git difftool --dir-diff
。
在调用目录diff命令时,正确生成了不同文件的列表,但如果我们实际尝试打开一个文件,则双方都会显示错误文件不存在。显然,这是因为opendiff几乎立即终止,因此让git删除发生比较的临时文件夹。
在this answer之后,我们将这些行添加到我们的全局git配置文件中:
[difftool "opendiff"]
cmd = /usr/bin/opendiff \"$LOCAL\" \"$REMOTE\" -merge \"$MERGED\" | cat
但它并没有解决文件不存在的问题(而且opendiff几乎立即返回)。
这个用例的正确配置是什么?
问题是Filemerge正在过滤掉.git
目录,这是git存储--dir-diff
输出中使用的目录的地方。
在Filemerge中,转到首选项>过滤器并从.git
中删除Files to ignore
,它应该可以工作。