Como fazer git diff --ignore-space-change o padrão

110

Eu provavelmente poderia configurar um alias, mas parece que devo ser capaz de definir isso como uma opção no arquivo de configuração, mas não vejo como fazer isso.

Eu só quero --ignore-space-changequando estou fazendo diff, não quando estou aplicando ou qualquer outra coisa. Estou tentando tornar o diff mais fácil de entender, sem confundi-lo com linhas +/- estranhas que não apresentam mudanças reais.

codificador de barco
fonte
2
preocupa-se em alterar a resposta correta? :)
igorsantos07
1
agora existe um atalho git diff -wque é um atalho para --ignore-all-space: Ignorar espaços em branco ao comparar linhas. Isso ignora as diferenças, mesmo se uma linha tiver espaço em branco onde a outra linha não tiver nenhum.
João Pimentel Ferreira

Respostas:

22

De acordo com o manual do Git Config, essa opção não existe. Sua única opção é criar um alias.

http://git-scm.com/docs/git-config

Dogbert
fonte
Eu estava pensando isso ao ler aquela página também. Eu esperava que alguém conhecesse uma maneira que simplesmente não foi documentada ... bem.
boatcoder
@Dogbert - Tenho o mesmo problema, apenas quando executo git add -p <file_name>, alguma sugestão?
Guy Avraham
@ JoãoPimentelFerreira Isso não o torna padrão.
DylanYoung
existe essa opção stackoverflow.com/a/53054020/1243247
João Pimentel Ferreira
99

Você pode usar git alias ou bash alias se estiver usando um sistema operacional disponível em shell.

  1. git alias : execute este comando para adicionar o alias:

    git config --global alias.dfw 'diff --ignore-space-change'

    --ignore-space-change can be abbreviated to -w
    para aplicar o alias usando: git dfw

  2. alias bash : execute este comando para adicionar alias bash:

    echo "alias gitdfw='git diff --ignore-space-change'">>~/.profile

    Abra um novo terminal e você pode executar diretamente gitdfwpara conseguir o mesmo.

yjqg6666
fonte
8
Essa deve ser a resposta aceita, porque é realmente útil com exemplos, em vez de 'ir para este URL'.
DrStrangepork
7
De acordo com a documentação atual do git , -bé o mesmo que --ignore-space-change. Ele se alinha com o diffcomando Linux , onde -wsignifica --ignore-all-space. É uma distinção importante porque, por exemplo, o texto a b cé considerado igual abcà -wopção; no código, é improvável que seja o que você deseja, portanto, -bé uma opção melhor.
Richard Wiseman,
10

EDITAR: SOU TOLO E NÃO LEI SUA PEDIDO COMPLETAMENTE

Uma maneira de conseguir algo semelhante, a partir de man git-config:

 apply.whitespace
       Tells git apply how to handle whitespaces, in the same way
       as the --whitespace option. See git-apply(1).

Então abra seu ~/.gitconfigou ./.git/config/e anexe

[apply]
   whitespace = nowarn

Também pode não permitir que você confirme algo que apenas altera os espaços em branco, mas tenho certeza de que você pode ignorar isso com alguns sinalizadores.

algum idiota útil
fonte
1
O OP estava procurando uma maneira de definir o padrão ao fazer a git diff. Isso serve para isso apply.
denishaskin
10

Pergunta antiga (2011), mas agora há um atalho git diff -wque significa --ignore-all-space

Ignore os espaços em branco ao comparar as linhas. Isso ignora as diferenças, mesmo se uma linha tiver espaço em branco onde a outra linha não tiver nenhum.

João Pimentel Ferreira
fonte
2

seria ótimo se isso fosse possível com uma opção. mas um alias funciona muito bem. aqui estão as linhas relevantes do meu .gitconfig:

[diff]
    tool = mydiff
[difftool "mydiff"]
    cmd = "colordiff -NuBbwi \"$LOCAL\" \"$REMOTE\" | less -R"
[difftool]
    prompt = false
[alias]
    dt = difftool

isso pressupõe o uso de colordiff, que eu recomendo, dando a você uma cópia quase exata do que o git diff mostraria, com duas diferenças:

  1. a linha --- em colordiff é colorida de forma diferente da mesma linha em git diff (problema muito pequeno)
  2. cada arquivo é mostrado um de cada vez (problema irritante - alguém sabe uma solução?)

aqui está meu / etc / colordiffrc:

plain=off
newtext=green
oldtext=red
diffstuff=cyan
cvsstuff=red

Mac OS X 10.9.2, git versão 1.8.5.2 (Apple Git-48)

(colordiff foi obtido da cerveja)

Joseph Cheek
fonte