Ich bearbeite einige Markdown-Dateien eines geklonten Remote-Repositorys und wollte das Erstellen und Anwenden von Patches von einem Zweig auf einen anderen testen. Jedes Mal, wenn ich Änderungen vornehme, erhalte ich jedoch die folgende Meldung git apply
:
0001-b.patch:16: trailing whitespace.
warning: 1 line adds whitespace errors.
(Dies geschieht auf meinem Mac und ich weiß nicht, wo der ursprüngliche Code erstellt wurde.)
Was bedeutet die Warnmeldung und muss ich mich darum kümmern?
git
whitespace
patch
git-patch
Yarin
quelle
quelle
Antworten:
Du musst dich nicht darum kümmern.
Die Warnung legt einen Standard für die Sauberkeit von Textdateien in Bezug auf Leerzeichen fest, wie es viele Programmierer gerne tun. Wie das Handbuch erklärt:
Der "Fehler" bedeutet also, dass durch die Änderung ein nachfolgendes Leerzeichen, eine Nur-Leerzeichen-Zeile oder ein Leerzeichen vor einer Registerkarte eingefügt wird. Abgesehen von dieser Tatsache ist an der Änderung nichts Falsches, und sie wird sauber und korrekt angewendet. Mit anderen Worten, wenn Sie sich nicht für das "falsche" Leerzeichen interessieren, können Sie die Warnung ignorieren oder deaktivieren
git config apply.whitespace nowarn
.quelle
git show
- wenn Ihr Git Farben macht, werden Sie sehen, dass das störende Leerzeichen in wütendem Rot erscheint. Außerdemgit show --word-diff
wird Ihnen nicht nur die Zeilenänderung angezeigt, sondern auch Einfügungen in der Mitte der Zeile. Dies sollte zeigen, ob der Patch wirklich nur ein Wort in der Mitte hinzufügt oder ob er auch ein nachfolgendes Leerzeichen hinzufügt.Ein Fall, in dem Sie sich zu Recht darum kümmern könnten, ist, wenn Sie zwischen "alten" Whitespase-Fehlern (die Sie möglicherweise aus alten Gründen behalten möchten) und "neuen" Whitespace-Fehlern (die Sie vermeiden möchten) unterscheiden möchten.
Zu diesem Zweck wird Git 2.5+ (2. Quartal 2015) eine spezifischere Option für die Erkennung von Leerzeichen vorschlagen.
Siehe Commits 0e383e1 , 0ad782f und d55ef3e [26. Mai 2015] von Junio C Hamano (
gitster
) .(Zusammengeführt von Junio in Commit 709cd91 , 11. Juni 2015)
Die Dokumentation enthält jetzt :
Zum Beispiel hatte das alte Commit einen Whitespace-Fehler (
bbb
), aber Sie können sich nur auf die neuen Fehler konzentrieren (am Ende vonstill bbb
undccc
):(Test danach durchgeführt
t/t4015-diff-whitespace.sh
)Mit Git 2.26 (Q1 2020)
diff-*
achtet die Sanitärfamilie der Unterbefehle nun auf diediff.wsErrorHighlight
Konfiguration, die zuvor ignoriert wurde. Dadurch kann "git add -p
" auch dem Endbenutzer die Leerzeichenprobleme anzeigen.Siehe Commit da80635 (31. Januar 2020) von Jeff King (
peff
) .(Zusammengeführt von Junio C Hamano -
gitster
- in Commit df04a31 , 14. Februar 2020)quelle
Der Leerzeichenfehler bei visuellen Bildern wird hier angezeigt.
http://git-scm.com/book/en/v2/Distributed-Git-Contributing-to-a-Project#Commit-Guidelines
quelle
Weil die Linie mit
TAB
istead von beginntSPACE
. Gehen Sie zur Patch-Datei und ersetzen Sie sieTAB
durchSPACE
. ZB auf vim on line + vom Patch-Dateityp x, um Leerzeichen zu entfernen und nicht das Zeichen + zu entfernen und Leerzeichen (STRG) auf eqiv in Originalgröße einzufügen.quelle