So machen Sie git diff --ignore-space-change zum Standard

110

Ich könnte wahrscheinlich einen Alias ​​einrichten, aber es scheint, als ob ich dies als Option in der Konfigurationsdatei festlegen könnte, nur sehe ich es sowieso nicht.

Ich möchte das nur, --ignore-space-changewenn ich diff mache, nicht wenn ich mich bewerbe oder irgendetwas anderes. Ich versuche, das Diff verständlicher zu machen, indem ich es nicht mit überflüssigen +/- Linien überfülle, die keine wirklichen Änderungen aufweisen.

Bootscodierer
quelle
2
Möchtest du die richtige Antwort ändern? :)
igorsantos07
1
Jetzt gibt es eine Verknüpfung, git diff -wdie eine Verknüpfung für Folgendes darstellt--ignore-all-space : Leerzeichen beim Vergleichen von Zeilen ignorieren. Dies ignoriert Unterschiede, selbst wenn eine Zeile Leerzeichen enthält, während die andere Zeile keine Leerzeichen enthält.
João Pimentel Ferreira

Antworten:

22

Laut dem Git Config-Handbuch gibt es keine solche Option. Sie können nur einen Alias ​​erstellen.

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

Dogbert
quelle
Ich dachte, dass ich diese Seite auch gelesen habe. Ich hatte gehofft, jemand kannte einen Weg, der einfach nicht dokumentiert war ... na ja.
Bootscodierer
@ Dogbert - Ich habe das gleiche Problem, nur wenn ich git add -p <Dateiname> ausführe, irgendwelche Vorschläge?
Guy Avraham
@ JoãoPimentelFerreira Das macht es nicht zum Standard.
DylanYoung
Es gibt eine solche Option stackoverflow.com/a/53054020/1243247
João Pimentel Ferreira
99

Sie können Git-Alias oder Bash-Alias ​​verwenden, wenn Sie ein Shell-verfügbares Betriebssystem verwenden.

  1. Git-Alias : Führen Sie diesen Befehl aus, um einen Alias ​​hinzuzufügen:

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

    --ignore-space-change can be abbreviated to -w
    So wenden Sie den Alias ​​an: git dfw

  2. Bash-Alias : Führen Sie diesen Befehl aus, um den Bash-Alias ​​hinzuzufügen:

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

    Öffnen Sie ein neues Terminal und Sie können es direkt ausführen gitdfw, um dasselbe zu erreichen.

yjqg6666
quelle
8
Dies sollte die akzeptierte Antwort sein, da sie tatsächlich mit Beispielen nützlich ist, anstatt zu dieser URL zu gehen.
DrStrangepork
7
Laut der aktuellen git Dokumentation , -bist das gleiche wie --ignore-space-change. Es richtet sich nach dem Linux- diffBefehl, wo -wbedeutet --ignore-all-space. Dies ist eine wichtige Unterscheidung, da beispielsweise der Text a b cals derselbe wie abcbei der -wOption betrachtet wird. Im Code ist es unwahrscheinlich, dass dies das ist, was Sie wollen, daher -bist dies eine bessere Option.
Richard Wiseman
10

EDIT: Ich bin ein Fool und habe Ihre Anfrage nicht gründlich gelesen

Ein Weg, um etwas Ähnliches zu erreichen man git-config:

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

Öffnen Sie also Ihr ~/.gitconfigoder ./.git/config/und fügen Sie es hinzu

[apply]
   whitespace = nowarn

Möglicherweise können Sie auch nichts festschreiben, das nur Leerzeichen ändert, aber ich bin sicher, dass Sie dies mit einigen Flags überschreiben können.

ein hilfreicher Idiot
quelle
1
Das OP suchte nach einer Möglichkeit, die Standardeinstellung festzulegen, wenn a ausgeführt wird git diff. Das macht es für apply.
Denishaskin
10

Alte Frage (2011), aber jetzt gibt es eine Abkürzung git diff -w, für die steht --ignore-all-space

Ignorieren Sie Leerzeichen, wenn Sie Linien vergleichen. Dies ignoriert Unterschiede, selbst wenn eine Zeile Leerzeichen enthält, während die andere Zeile keine Leerzeichen enthält.

João Pimentel Ferreira
quelle
2

Es wäre großartig, wenn dies mit einer Option möglich wäre. aber ein Alias ​​funktioniert ziemlich gut. Hier sind die relevanten Zeilen aus meiner .gitconfig:

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

Dies setzt die Verwendung von Colordiff voraus, was ich empfehle, und gibt Ihnen eine fast exakte Kopie dessen, was Git Diff zeigen würde, mit zwei Unterschieden:

  1. Die --- Linie in Colordiff ist anders gefärbt als die gleiche Linie in Git Diff (sehr kleines Problem).
  2. Jede Datei wird einzeln angezeigt (ärgerliches Problem - kennt jemand eine Lösung?)

Hier ist mein / etc / colordiffrc:

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

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

(Colordiff wurde vom Gebräu erhalten)

Joseph Cheek
quelle