Come impostare git diff --ignore-space-change come predefinito


110

Probabilmente potrei impostare un alias, ma sembra che dovrei essere in grado di impostarlo come opzione nel file di configurazione, solo che non vedo comunque farlo.

Voglio solo --ignore-space-changequando sto facendo diff, non quando sto applicando o qualsiasi altra cosa. Sto cercando di rendere il diff più facile da capire non ingombrandolo con linee +/- estranee che non hanno modifiche reali su di esse.


2
ti interessa cambiare la risposta corretta? :)
igorsantos07

1
ora c'è una scorciatoia git diff -wche è una scorciatoia per --ignore-all-space: Ignora gli spazi quando si confrontano le linee. Questo ignora le differenze anche se una riga ha spazi bianchi mentre l'altra riga non ne ha.
João Pimentel Ferreira

Risposte:


22

Secondo il manuale di Git Config, non esiste tale opzione. La tua unica opzione è creare un alias.

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


Lo stavo pensando anche leggendo quella pagina. Speravo che qualcuno conoscesse un modo che non era stato documentato ... vabbè.
boatcoder

@Dogbert - Ho lo stesso problema, solo quando eseguo git add -p <file_name>, qualche suggerimento?
Guy Avraham

@ JoãoPimentelFerreira Questo non lo rende l'impostazione predefinita.
DylanYoung


99

È possibile utilizzare git alias o bash alias se si utilizza un sistema operativo disponibile per la shell.

  1. git alias : esegui questo comando per aggiungere l'alias:

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

    --ignore-space-change can be abbreviated to -w
    per applicare l'alias utilizzando: git dfw

  2. bash alias : esegui questo comando per aggiungere bash alias:

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

    Apri un nuovo terminale e puoi correre direttamente gitdfwper ottenere lo stesso.


8
Questa dovrebbe essere la risposta accettata, perché in realtà è utile con esempi piuttosto che "vai a questo URL".
DrStrangepork

7
Secondo l' attuale documentazione di git , -bè lo stesso di --ignore-space-change. Si allinea con il diffcomando Linux , dove -wsignifica --ignore-all-space. È una distinzione importante perché, ad esempio, il testo a b cè considerato uguale abca quello -wdell'opzione; nel codice, è improbabile che sia quello che vuoi, quindi -bè un'opzione migliore.
Richard Wiseman


10

EDIT: SONO UN Pazzo E NON HO LETTO COMPLETAMENTE LA TUA RICHIESTA

Un modo per ottenere qualcosa di simile, da man git-config:

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

Quindi apri il tuo ~/.gitconfigo ./.git/config/e aggiungi

[apply]
   whitespace = nowarn

Potrebbe anche non permetterti di eseguire il commit di qualcosa che cambia solo gli spazi bianchi, ma sono sicuro che puoi sovrascriverlo con alcuni flag.


1
L'OP stava cercando un modo per impostare il valore predefinito durante l'esecuzione di un file git diff. Questo lo fa per apply.
denishaskin

10

Vecchia domanda (2011), ma ora c'è una scorciatoia git diff -wche sta per --ignore-all-space

Ignora gli spazi quando confronti le linee. Questo ignora le differenze anche se una riga ha spazi bianchi mentre l'altra riga non ne ha.


2

sarebbe fantastico se questo fosse possibile con un'opzione. ma un alias funziona abbastanza bene. ecco le righe rilevanti dal mio .gitconfig:

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

questo presuppone l'utilizzo di colordiff, che consiglio, dandoti una copia quasi esatta di ciò che mostrerebbe git diff , con due differenze:

  1. la riga --- in colordiff è colorata in modo diverso rispetto alla stessa riga in git diff (problema molto minore)
  2. ogni file viene mostrato uno alla volta (problema fastidioso: qualcuno conosce una soluzione?)

ecco il mio / etc / colordiffrc:

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

Mac OS X 10.9.2, versione git 1.8.5.2 (Apple Git-48)

(il colordiff è stato ottenuto dalla birra)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.