2011-09-05 10 views
87

mogłem prawdopodobnie konfiguracji aliasu, ale wydaje się, że powinienem być w stanie ustawić taką opcję w pliku konfiguracyjnym, tylko nie widzę w każdym razie aby to zrobić.Jak zrobić git diff --ignore-space-zmienić domyślną

Ja tylko chcę --ignore-space-change kiedy robię diff, a nie kiedy robię zastosować lub cokolwiek innego. Próbuję uczynić różnicę łatwiejszą do zrozumienia, nie zaśmiecając jej nadmiernymi liniami +/-, które nie zawierają żadnych rzeczywistych zmian.

+1

pielęgnacja zmienić poprawną odpowiedź? :) – igorsantos07

Odpowiedz

23

Według instrukcji Git Config, nie ma takiej opcji. Jedyną opcją jest utworzenie aliasu.

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

+0

Myślałem o tym również od czytania tej strony. Miałem nadzieję, że ktoś zna sposób, który nie został udokumentowany ... no cóż. – boatcoder

+0

@ Dogbert - Mam ten sam problem, tylko gdy wykonuję git add -p , jakieś sugestie? –

78

Można użyć git alias lub bash aliasu jeśli używasz powłoki-OS dostępne.

  1. git alias: Uruchomienie tego polecenia, aby dodać alias:

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

    --ignore-space-change can be abbreviated to -w
    stosowania alias używając: git dfw

  2. bash aliasu: Uruchom ten polecenie, aby dodać alias bash:

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

    otworzyć nowy terminal i można bezpośrednio uruchomić gitdfw aby osiągnąć to samo.

+5

Powinna to być zaakceptowana odpowiedź, ponieważ jest użyteczna przy przykładach, a nie "przejdź do tego adresu URL". – DrStrangepork

+1

Zgodnie z [aktualną dokumentacją git] (https://git-scm.com/docs/git-diff), '-b' jest identyczne z' --ignore-space-change'. Dopasowuje się do polecenia 'diff' Linux, gdzie' -w' oznacza '--ignore-all-space'. Jest to ważne wyróżnienie, ponieważ na przykład tekst 'a b c' jest uważany za taki sam jak' abc' z opcją '-w'; w kodzie jest to mało prawdopodobne, więc '-b' jest lepszą opcją. –

6

EDIT: Jestem głupcem i nie czytać REQUEST throughly

Sposób, aby osiągnąć coś podobnego, z man git-config:

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

Więc otwórz swe ~/.gitconfig lub ./.git/config/ i dołączyć

[apply] 
    whitespace = nowarn 

Może również nie pozwolić ci mmit coś, co zmienia tylko białe znaki, ale jestem pewien, że możesz to zmienić za pomocą niektórych flag.

+0

Program OP szukał sposobu ustawienia wartości domyślnej podczas wykonywania 'git diff'. Czyni to dla 'apply'. – denishaskin

+2

-1, ale przydatne ... –

2

Byłoby świetnie, gdyby było to możliwe z opcją. ale alias działa całkiem dobrze. tutaj są odpowiednie wiersze z mojego.gitconfig:

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

ten zakłada wykorzystywanie colordiff, co polecam, co daje prawie dokładną kopię co git diff pokaże, z dwoma różnicami:

  1. tej samej linii --- w colordiff jest zabarwiona inaczej niż w tym samym wierszu w git diff (bardzo niewielki problem)
  2. każdy plik jest pokazany po jednym na raz (irytujący problem - ktoś wie poprawkę)

oto mój/etc/colordiffrc:

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

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

(colordiff uzyskano z wywaru)