Wie schalte ich mit Git die Warnung "LF wird durch CRLF ersetzt" aus


153

Bei Git wird bei Verwendung des autocrlf = trueFlags immer noch eine Warnung ausgegeben, wenn die Zeilenenden geändert werden.

Ich verstehe, wofür die Warnung gedacht ist und wie das Flag für das Zeilenende deaktiviert wird, aber wie deaktiviere ich die Warnung selbst?


Alle Antworten hier sind veraltet - nachdem git gatattributes eingeführt hat. Safecrlf ist dein Freund autocrlf nicht! Bitte sehen Sie meine Antwort
Rusi

Antworten:


279

Sie können die Warnung mit ausschalten

git config --global core.safecrlf false

(Dadurch wird nur die Warnung deaktiviert, nicht die Funktion selbst.)


Wird das Ausschalten der Warnung verhindern, dass Git lf durch crlf ersetzt? @chronial
aidonsnous

3
@aidonsnous Aus Git-Dokumenten : Wenn core.safecrlf auf "true" oder "warn" gesetzt ist, überprüft git, ob die Konvertierung für die aktuelle Einstellung von core.autocrlf umkehrbar ist. Für "true" lehnt git irreversible Conversions ab. Für "warn" gibt git nur eine Warnung aus, akzeptiert jedoch eine irreversible Konvertierung. Wenn Sie irreversible Konvertierungen nicht ablehnen müssen, wird die Warnung durch Setzen von core.safecrlf auf false unterdrückt, die automatische Konvertierung wird jedoch fortgesetzt.
Danny Libin

5

Sie sollten core.autocrlf inputund verwenden core.eol input. Oder lassen Sie git einfach nicht die Zeilenenden mit ändern autocrlf falseund entfernen Sie das Hervorheben von crlfs in diffs usw. mitcore.whitespace cr-at-eol .

Hoffe das hilft


Normalerweise möchten Sie, dass Ihre BAT-Skripte enden und mit CRLF und Ihr SH-Skript mit LF festgeschrieben werden.
Sandburg

0

Sie suchen nach der core.whitespaceOption ( git config --helpDetails siehe ).

Sie können diese Option folgendermaßen einstellen:

$ git config core.whitespace cr-at-eol

0

Ich habe diesen Weg benutzt:

Speichern Sie Ihre aktuellen Dateien in Git, damit keine Ihrer Arbeiten verloren gehen.

git add . -u
git commit -m "Saving files before refreshing line endings"

Entfernen Sie jede Datei aus dem Git-Index.

git rm --cached -r .

Schreiben Sie den Git-Index neu, um alle neuen Zeilenenden aufzunehmen.

git reset --hard

Fügen Sie alle geänderten Dateien wieder hinzu und bereiten Sie sie für ein Commit vor. Dies ist Ihre Chance, zu überprüfen, welche Dateien, falls vorhanden, unverändert waren.

git add .
# It is perfectly safe to see a lot of messages here that read
# "warning: CRLF will be replaced by LF in file."

Übernehmen Sie die Änderungen in Ihr Repository.

git commit -m "Normalize all the line endings"

https://help.github.com/articles/dealing-with-line-endings/


13
Ich glaube, das OP hat versucht, diese Warnungen nicht mehr zu sehen. Normalisieren Sie nicht alle Zeilenenden.
Mike Cluck

git rm --cached -r . && git reset --hardscheint den Trick zu tun, danke
Shanimal

0

Lustigerweise hatte ich beide Konfigurationen wie hier erklärt angewendet, und meine .gitconfig-Datei enthielt diese 2 Zeilen:

[core]
       autocrlf = false
       whitespace = cr-at-eol

Trotzdem habe ich die Warnung bekommen. Nur um es zu versuchen, habe ich beide Zeilen auskommentiert und die Warnung ist tatsächlich verschwunden. Keine Ahnung, warum ich sie überhaupt erst eingesetzt habe ...


0

Das Setzen von "core.safecrlf false" funktioniert. Nachdem ich den Wert in "true" geändert habe, ändert sich die Ausgabe von "warning" in "fatal" (siehe unten).

$ git add -A
warning: LF will be replaced by CRLF in .gitignore.
The file will have its original line endings in your working directory

$ git config --global core.safecrlf false

$ git reset

$ git config --global core.safecrlf true

$ git add -A
fatal: LF would be replaced by CRLF in .gitignore

$

In letzter Zeit ist es besser, Gitattributes als Autocrlf zu verwenden. Siehe meine Antwort . Alle Antworten (auf diesem q) sind alt und veraltet
Rusi
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.