O que está fazendo com que o 'diff' rode 'git diff'?

7

Gostaria de usar diff conforme descrito aqui e na documentação que vejo quando digito man diff . No entanto, quando digito diff , o que obtenho é isto:

~ ❯❯❯ diff
usage: git diff --no-index <path> <path>

Da mesma forma, quando tento usar diff , obtenho erros de git porque -rq é suportado em man diff , mas não em git diff :

~ ❯❯❯ diff -rq ~/ ~/Desktop
fatal: invalid diff option/value: -rq

Estou usando Prezto e hub que ajudam na produtividade do git, mas também não criam um alias que não seja menos com g , até onde eu sei.

Eu executei alguns scripts como este para tentar encontrar algo que esteja definindo diff para git diff , mas sem sucesso.

Como faço para corrigir isso / descobrir o que está causando isso / substituí-lo?

Editar

Ran type diff :

diff is a shell function
diff is /usr/bin/diff
    
por Ben Saufley 12.12.2015 / 00:02

3 respostas

9

Isso parece ser de prezto definindo uma função que substitui diff . Pode muito bem ter uma maneira de desabilitar isso, mas eu não sei o que é ( mas o ericbn faz! ). Você tem algumas opções:

  • /usr/bin/diff ou command diff executará o comando diff , em vez da função.
  • unset -f diff removerá a função diff . Você poderia colocar isso na sua configuração de shell.
  • Como você descobriu, se colordiff estiver instalado, ele será usado de preferência para git diff pela função.
  • Finalmente, você pode remover ou renomear a função do próprio arquivo.

Isso realmente parece uma falha na prezto.

    
por 12.12.2015 / 00:37
3

Eu usaria uma função como essa

$ diffit () {
command diff "$@"
}

Uma função sobre um alias, pois há parâmetros

Uso: diffit file1 file2

Você poderia colocá-lo no seu .bashrc
Pessoalmente eu mantenho minha coleção de funções em .bash_functions e em .bashrc tenho

test -f ~/.bash_functions.sh && . $_
    
por 12.12.2015 / 01:20
1

Como @MichaelHomer respondeu, esta é uma função prezto, parte do módulo utilitário documentada em link . A maneira de desabilitar isso é:

To disable diff highlighting, add the following line to zpreztorc:

zstyle ':prezto:module:utility:diff' color 'no'

Ou a instalação de colordiff também faria a função personalizada chamá-la em vez de git diff , pois o objetivo do prezto personalizado diff é:

  • diff highlights diff output (requires colordiff or Git).
    
por 10.08.2016 / 14:45