402 Stimmen

Nur Änderungen ohne Leerzeichen hinzufügen

Ich habe meinen Texteditor so eingestellt, dass er nachstehende Leerzeichen beim Speichern einer Datei automatisch abschneidet, und ich trage zu einem Open-Source-Projekt bei, das große Probleme mit nachstehenden Leerzeichen hat.

Jedes Mal, wenn ich versuche, einen Patch einzureichen, muss ich zunächst alle Änderungen, die nur aus Leerzeichen bestehen, von Hand ignorieren, um nur die relevanten Informationen auszuwählen. Nicht nur das, sondern wenn ich git rebase In der Regel stoße ich dadurch auf mehrere Probleme.

Als solches möchte ich in der Lage sein, nur Änderungen ohne Leerzeichen in den Index aufzunehmen, ähnlich wie bei git add -p macht, aber ohne dass ich alle Änderungen selbst vornehmen muss.

Weiß jemand, wie man das macht?

EDIT: I kann nicht die Art und Weise, wie das Projekt funktioniert, zu ändern, und sie haben nach einer Diskussion auf der Mailingliste beschlossen, dies zu ignorieren.

7voto

karmakaze Punkte 32241

Wie wäre es mit dem Folgenden:

git add `git diff -w --ignore-submodules |grep "^[+][+][+]" |cut -c7-`

Der Befehl in Anführungszeichen ruft die Namen der Dateien ab, die Änderungen ohne Leerzeichen aufweisen.

2voto

aleclarson Punkte 17107

Ähnlich wie die Antwort von @void.pointer, aber für die Korrektur der letzten Übertragung.

git reset --mixed head^
git diff -U0 -w --no-color | git apply --cached --ignore-whitespace --unidiff-zero -

Dadurch bleiben die Leerraumänderungen unbearbeitet und der Rest wird bearbeitet.

0voto

Tomasz Punkte 477

Das funktioniert bei mir:

git config apply.whitespace fix

Vor jeder Übertragung verwenden Sie den Befehl :

git add -up .

0voto

Moses S Punkte 57

Das ist mein Hack.

git diff -w | grep "diff --git a/*" | sed -r 's#diff --git a/(.*) b(.*)#\1#g' | xargs git add 

git diff -w zeigt nur Dateien mit Änderungen ohne Leerzeichen an,

0voto

Jlam Punkte 1882

Ich habe meinen Texteditor so eingestellt, dass er nachstehende Leerzeichen beim Speichern einer Datei automatisch abschneidet

Verfügt Ihr Editor nicht über projekt- bzw. verzeichnisbezogene Einstellungen? Deaktivieren Sie doch einfach Ihre Leerzeicheneinstellungen für dieses Projekt. Scheint eine viel einfachere Lösung zu sein...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X