如何让git-diff在OSX上使用gitx--diff
Gitx有一个很好的差异查看器,如何让git自动将git差异导入Gitx 我尝试将git config diff.external设置为如下所示的shell脚本:如何让git-diff在OSX上使用gitx--diff,git,macos,diff,Git,Macos,Diff,Gitx有一个很好的差异查看器,如何让git自动将git差异导入Gitx 我尝试将git config diff.external设置为如下所示的shell脚本: git diff "$2" "$5" | gitx 然而,这只会将所有单独的文件打开到多个gitx窗口中,而且会真正弄乱文件名,将它们全部更改为具有疯狂名称的tmp文件 有谁有更好的解决方案吗?很抱歉,这并不能真正回答您关于gitx的问题。我甚至不确定gitx是否可以作为一个通用的diff工具。您可能喜欢FileMerge,这是Xc
git diff "$2" "$5" | gitx
然而,这只会将所有单独的文件打开到多个gitx窗口中,而且会真正弄乱文件名,将它们全部更改为具有疯狂名称的tmp文件
有谁有更好的解决方案吗?很抱歉,这并不能真正回答您关于gitx的问题。我甚至不确定gitx是否可以作为一个通用的diff工具。您可能喜欢FileMerge,这是Xcode安装中包含的一个合并/差异工具。有一个名为opendiff的脚本可以为您启动它。只需制作一个包含以下行的脚本,并将diff.external指向它
opendiff $2 $5
我问了一会儿。这个答案可能对你有帮助。这里有几个问题,但其中一个问题与在FileMerge以外的其他工具中打开差异视图有关。我是为Araxis merge做的,但是修改这些基本说明对于您所使用的任何工具都不难 首先,我创建了~/bin/git-diff-driver.sh并向文件中添加了执行权限
#!/bin/sh
/usr/local/bin/compare -title1:"$1 (repo version)" -title2:"$1 " -max "$2" "$5"
Araxis将其命令行界面工具安装在/usr/local/bin中。比较工具是它们的通用工具,Araxis*工具通过比较提供
设置好后,需要将以下行添加到~/.gitconfig
[merge]
tool = araxismerge
[mergetool "araxismerge"]
cmd = "/usr/local/bin/compare -3 -merge -wait $LOCAL $BASE $REMOTE $MERGED"
path = /usr/local/bin/
[diff]
external = "/Users/mark/bin/git-diff-driver.sh"
这将通过Araxis Merge重定向所有双向和三向差异。似乎path=不应该是必需的,但它可以工作
祝你好运。就像sigjuice在上面说的那样。只有像我这样的noobs现在需要知道如何连接git来使用它。这就是我所做的
echo 'opendiff $2 $5' > ~/opendiff-git.sh
chmod a+x ~/opendiff-git.sh
git config --global diff.external ~/opendiff-git.sh
现在,所有git diff都应该打开FileMerge.app…我不太确定这是您想要的,但对于我们的Mac电脑来说,它确实很方便,而且有些关联,您可能想尝试: $git difftool-t opendiff散列
这将在opendiff程序中打开diff,我发现它非常有用。这比创建一个shell脚本并强制所有差异通过新的外部差异要容易得多。如果您不在Mac上,您可能可以将opendiff更改为您最喜欢的可用差异工具…我正在使用这个脚本,我将它命名为git diffx并放在我的路径中:
#!/bin/bash
result=$(git diff $@)
if [ "$result" ]; then
echo "$result" | gitx
fi
然后,不是git diff…,而是git diffx…这个问题可能有点老了,但我刚刚发现了一些适合我的东西 打开GitxAppv.7,选择GitX菜单,然后启用终端使用 在终端管道上,通过以下方式与gitx相区别:
git diff | gitx使“git difftool…”看起来您无法-将opendiff更改为您最喜欢的可用diff工具…,-t mysupertool导致未知的合并工具“mysupertool”opendiff$2$5-merge$5适用于其中包含空格的路径。⌘-s将更改从FileMerge保存回本地文件。如果我厌倦了opendiff并想返回内联diff工具,我该如何撤消此更改?@Will-Cole:git-config-global-unset-diff.externalgitx是一个很好的通用diff工具