你如何在OS X上使用git diff使用gitx --diff

BJ *_*ark 13 git macos diff

Gitx有很大的差异阅读器,我怎么做git的自动管git的差异无论到gitx?

我试图将git config diff.external设置为一个如下所示的shell脚本:

git diff "$2" "$5" | gitx
Run Code Online (Sandbox Code Playgroud)

但是,这只会将所有单个文件打开到多个gitx窗口中,并且它实际上会混淆文件名(将它们全部更改为具有疯狂名称的tmp文件).

有没有人有更好的解决方案?

Wol*_*ing 18

就像sigjuice在那里说的那样.只有那个noobs(就像我现在)需要知道如何"连接"git来使用它.这就是我做的

echo 'opendiff $2 $5' > ~/opendiff-git.sh
chmod a+x ~/opendiff-git.sh
git config --global diff.external ~/opendiff-git.sh 
Run Code Online (Sandbox Code Playgroud)

现在所有"git diff whatever"应该打开FileMerge.app ...

  • opendiff"$ 2""$ 5"-merge"$ 5"适用于包含空格的路径.⌘-s将更改从FileMerge保存回本地文件. (5认同)

jon*_*alv 5

我不太确定这是你想要的,但对于Mac上的我们来说它确实很方便而且有些相关,你可能想尝试:

$ git difftool -t opendiff #hash

这打开了opendiff程序中的差异,我发现它非常有用.这比创建shell脚本和强制所有差异通过新的外部差异要容易得多.如果您不在Mac上,您可以将opendiff更改为您最喜欢的可用差异工具......


sig*_*ice 3

很抱歉,这并不能真正回答您关于 gitx 的问题。我什至不确定 gitx 是否可以充当通用 diff 工具。您可能喜欢 FileMerge,它是 Xcode 安装中包含的合并/差异工具。有一个名为 opendiff 的脚本可以为您启动它。只需创建一个包含以下行的脚本并将 diff.external 指向它即可。

opendiff $2 $5
Run Code Online (Sandbox Code Playgroud)