wake-up-neo.com

Git diff -w ignoriert Leerzeichen nur am Anfang und Ende von Zeilen

Ich benutze git diff -w, um Leerraumunterschiede zu ignorieren. Aber ich habe gerade bemerkt, dass es auch Leerraumunterschiede in der Mitte der Zeilen ignoriert. Wie kann ich nur Leerraumunterschiede ignorieren, die am Anfang (^) oder Ende ($) von Zeilen auftreten?

332
ma11hew28

Für die Verwendung am Zeilenende:

git diff --ignore-space-at-eol

Anstelle dessen, was Sie aktuell verwenden:

git diff -w (--ignore-all-space)

Zum Start der Linie ... Sie haben Pech, wenn Sie eine integrierte Lösung wünschen.

Wenn es Ihnen jedoch nichts ausmacht, sich die Hände schmutzig zu machen, gibt es irgendwo einen ziemlich alten Patch, der Unterstützung für "--ignore-space-at-sol" hinzufügt.

Dies ist eine alte Frage, wird aber immer noch regelmäßig angeschaut/benötigt. Ich möchte Leser wie mich darauf hinweisen, dass Whitespace, wie in der Frage des OP erwähnt, nicht mit Regex identisch ist Definition, um Zeilenumbrüche, Tabulatoren und Leerzeichen einzuschließen - Git bittet Sie, explizit zu sein. Hier finden Sie einige Optionen: https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration

Wie angegeben, git diff -b oder git diff --ignore-space-change ignoriert Leerzeichen am Zeilenende. Wenn Sie möchten, dass diese Einstellung Ihr Standardverhalten ist, fügt die folgende Zeile diese Absicht zu Ihrer .gitconfig-Datei hinzu, sodass das Leerzeichen am Zeilenende immer ignoriert wird:

git config --global core.whitespace trailing-space

In meinem Fall habe ich diese Frage gefunden, weil ich daran interessiert war, die "Carriage Return Whitespace Differences" zu ignorieren. Deshalb brauchte ich Folgendes:

git diff --ignore-cr-at-eol oder git config --global core.whitespace cr-at-eol von hier .

Sie können es auch zum Standard machen nur für dieses Repo, indem Sie den Parameter --global weglassen und die Einstellungsdatei für dieses Repo einchecken. Für das CR-Problem, mit dem ich konfrontiert war, verschwindet es nach dem Einchecken, wenn warncrlf oder autocrlf = true im Abschnitt [core] der .gitconfig-Datei sind.

1
deasserted