使用OS X FileMerge/opendiff查看git差异,在目录视图中一次加载所有文件

使用OS X FileMerge/opendiff查看git差异,在目录视图中一次加载所有文件,git,macos,filemerge,opendiff,git-difftool,Git,Macos,Filemerge,Opendiff,Git Difftool,我们正在使用git控制项目的版本。在OS X下开发时,我们希望使用与开发工具一起分发的FileMerge应用程序来显示git生成的差异: 如果我们理解正确,就可以通过git difftool配置其调用 根据来自不同来源的建议,我们在全局git配置文件中添加了以下内容: [diff] tool = opendiff [difftool "opendiff"] cmd = /usr/bin/opendiff \"$LOCAL\" \"$REMOTE\" -merge \"$MER

我们正在使用git控制项目的版本。在OS X下开发时,我们希望使用与开发工具一起分发的FileMerge应用程序来显示git生成的差异:
如果我们理解正确,就可以通过
git difftool
配置其调用


根据来自不同来源的建议,我们在全局git配置文件中添加了以下内容:

[diff]
    tool = opendiff
[difftool "opendiff"]
    cmd = /usr/bin/opendiff \"$LOCAL\" \"$REMOTE\" -merge \"$MERGED\" | cat
它适用于“逐文件”差异。但我们更希望在工具中立即加载目录差异,因为命令是针对该工具的

调用directory diff命令时,将正确生成中不同文件的列表,但如果我们实际尝试打开一个文件,则两侧都会显示错误文件不存在。显然,这是因为opendiff几乎立即终止,从而让git删除发生比较的临时文件夹

下面,我们将这些行添加到全局git配置文件中:

[diff]
    tool = opendiff
[difftool "opendiff"]
    cmd = /usr/bin/opendiff \"$LOCAL\" \"$REMOTE\" -merge \"$MERGED\" | cat
但是它不能解决文件不存在的问题(opendiff仍然几乎立即返回)


这个用例的正确配置是什么?

问题是Filemerge正在过滤掉
.git
目录,git在那里存储
--dir diff
输出中使用的目录


在Filemerge中,转到Preferences>Filters并从
文件中删除
.git
以忽略
,它应该可以工作。

您是否考虑过使用Xcode来查看差异?@特洛伊木马程序谢谢您的建议:您能否提供适当的配置,以便我们可以快速查看它是否适合我们的工作流程?(另外,出于好奇/自豪,我们真的很想打开这个opendiff螺母…)从配置来看,这只是一个在Xcode中探索回购的案例;但坦率地说,我自己不这么做。我坚持使用SourceTree:)