是什么导致 `diff` 运行 `git diff`?

Ben*_*ley 7 osx zsh diff alias prezto

我想diff按照这里和我在键入时看到的文档中的描述使用man diff。但是,当我输入时diff,我得到的是:

~ ??? diff
usage: git diff --no-index <path> <path>
Run Code Online (Sandbox Code Playgroud)

同样,当我尝试使用 时 diff,我会收到 git 错误,因为-rq支持man diff但不支持git diff

~ ??? diff -rq ~/ ~/Desktop
fatal: invalid diff option/value: -rq
Run Code Online (Sandbox Code Playgroud)

我正在使用Preztohub,它们都有助于提高 git 生产力,但据我所知,它们都没有创建至少不以开头的别名g

我已经运行几个剧本像这样,试图发现运作定义的东西diffgit diff,但无济于事。

我如何解决这个问题/找到导致它的原因/覆盖它?

编辑

type diff

diff is a shell function
diff is /usr/bin/diff
Run Code Online (Sandbox Code Playgroud)

Mic*_*mer 9

这似乎来自prezto 定义了一个覆盖diff. 它可能有一种禁用它的方法,但我不知道它是什么(但 ericbn知道)。您有几个选择:

  • /usr/bin/difforcommand diff都将运行diff命令,而不是函数。
  • unset -f diff将删除该diff功能。你可以把它放在你的 shell 配置中。
  • 正如您所发现的,如果colordiff已安装,它将优先于git diff该功能使用。
  • 最后,您可以从该文件本身删除或重命名该函数。

这似乎真的是 prezto 中的一个错误功能。