使用Xcode 4作为Git difftool

and*_*amm 9 git diff xcode difftool xcode4

我想使用Xcode 4的"版本编辑器"视图作为Git的标准difftool.

换句话说,我希望能够设置此选项:

git config --global diff.external <XCODE>
Run Code Online (Sandbox Code Playgroud)

并且在Xcode的diff查看器中打开diff(因为它很酷).

这可能吗?怎么样?

sjs*_*sjs 6

可悲的是不可能.有人希望苹果有朝一日改变这种状态.

我猜你已经知道了以下内容,但是为了其他人的利益,你可以使用Apple的FileMerge应用程序,而不是使用类似的命令来获得类似的,尽管稍微有点经验:

git difftool path/to/file
Run Code Online (Sandbox Code Playgroud)

我的git默认使用FileMerge作为difftool,但您可以使用以下命令显式配置它:

git config --global diff.tool opendiff
Run Code Online (Sandbox Code Playgroud)

(这会阻止git每次都列出候选工具.)我也想禁用git的difftool预启动提示:

git config --global difftool.prompt false
Run Code Online (Sandbox Code Playgroud)

可以配置git,以便也git diff可以调用FileMerge.(我更喜欢离开git diff它本身的方式.)如果你想要,你首先需要创建一个shell脚本来将适当的参数映射到opendiff:

#!/bin/sh
/usr/bin/opendiff "$2" "$5" -merge "$1"
Run Code Online (Sandbox Code Playgroud)

然后跑

git config --global diff.external /path/to/shell/script
Run Code Online (Sandbox Code Playgroud)