説明されているようにdiff
を使用したい ここ そしてドキュメントでman diff
と入力すると表示されます。ただし、diff
と入力すると、次のようになります。
~ ❯❯❯ diff
usage: git diff --no-index <path> <path>
同様に、usediff
を実行しようとすると、-rq
がman diff
でサポートされているため、gitエラーが発生しますがgit diff
ではありません:
~ ❯❯❯ diff -rq ~/ ~/Desktop
fatal: invalid diff option/value: -rq
私は Prezto と hub を使用していますが、どちらもgitの生産性に役立ちますが、どちらもleast私が知る限り、g
で始まります。
this のようないくつかのスクリプトを実行して、diff
をgit diff
に定義しているものを見つけようとしましたが、役に立ちませんでした。
これを修正する/原因を見つける/オーバーライドするにはどうすればよいですか?
ランtype diff
:
diff is a Shell function
diff is /usr/bin/diff
これは diff
をオーバーライドする関数を定義するprezto からのようです。それを無効にする方法があるかもしれませんが、それが何であるかはわかりません( しかしericbnはそうします! )。いくつかのオプションがあります。
/usr/bin/diff
またはcommand diff
は両方とも、関数ではなくdiff
コマンドを実行します。unset -f diff
はdiff
関数を削除します。それをシェル構成に入れることができます。colordiff
がインストールされている場合、関数によってgit diff
よりも優先して使用されます。これは本当にpreztoの機能ミスのようです。
このような関数を使用します
$ diffit () {
command diff "$@"
}
パラメータがあるのでエイリアス上の関数
使用法:diffit file1 file2
あなたはそれをあなたの.bashrcに入れることができます
個人的には、関数のコレクションを.bash_functions
と.bashrc
に保持しています。
test -f ~/.bash_functions.sh && . $_
@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
はdiff出力を強調表示します(colordiff
またはGit
が必要です)。