我想diff
按照描述使用这里在文档中,当我输入man diff
.然而,当我输入 时diff
,我得到的是这样的:
~ ❯❯❯ diff
usage: git diff --no-index <path> <path>
同样,当我尝试使用 diff
,我收到 git 错误,因为-rq
支持man diff
但不支持git diff
:
~ ❯❯❯ diff -rq ~/ ~/Desktop
fatal: invalid diff option/value: -rq
我在用着普雷斯托和中心两者都有助于提高 git 生产力,但都不会创建不适合的别名至少g
据我所知,从 开始。
我运行了一些脚本,例如这试图找到一些定义diff
但git diff
无济于事的东西。
我该如何解决这个问题/找到导致它的原因/覆盖它?
编辑
然type diff
:
diff is a shell function
diff is /usr/bin/diff
答案1
这似乎是来自prezto 定义函数重写diff
。它很可能有办法禁用它,但我不知道它是什么(但埃里克恩做到了!)。您有几个选择:
/usr/bin/diff
或者command diff
都将运行diff
命令,而不是函数。unset -f diff
将删除该diff
功能。您可以将其放入 shell 配置中。- 正如您所发现的,如果
colordiff
已安装,它将优先于git diff
该功能使用。 - 最后,您可以从该文件本身中删除或重命名该函数。
这看起来确实是 prezto 中的一个错误。
答案2
我会使用这样的函数
$ diffit () {
command diff "$@"
}
带有参数的别名上的函数
用法:diffit file1 file2
你可以把它放在你的 .bashrc 中
我个人将我的函数集合保存在.bash_functions
并且在.bashrc
我有
test -f ~/.bash_functions.sh && . $_
答案3
正如 @MichaelHomer 回答的那样,这是一个 prezto 函数,是记录在中的实用程序模块的一部分https://github.com/sorin-ionescu/prezto/tree/master/modules/utility。禁用此功能的方法是:
要禁用差异突出显示,请将以下行添加到 zpreztorc:
zstyle ':prezto:module:utility:diff' color 'no'
或者安装colordiff
也会使自定义函数调用它而不是git diff
,因为自定义 prezto 的目的diff
是:
diff
突出显示差异输出(需要colordiff
或Git
)。