Frage LF wird in GIT durch CRLF ersetzt - Was ist das und ist es wichtig? [Duplikat]


Mögliche Duplikate:
git ersetzt LF mit CRLF 

Wenn ich eine neue Rails-Anwendung erstelle, sehe ich eine Warnung in Bezug auf LF-Ersatz. ich mache     git init     Git hinzufügen.

und dann bumm! Ich sehe das für fast alle Dateien. Normalerweise mache ich einfach weiter und baue meine Anwendung und sie verschwindet nach vielen Änderungen an Dateien.

Beispiel:

Die Datei hat die ursprünglichen Zeilenenden in Ihrem Arbeitsverzeichnis.   Warnung: LF wird in Gemfile durch CRLF ersetzt.

Die Datei hat die ursprünglichen Zeilenenden in Ihrem Arbeitsverzeichnis.   Warnung: LF wird in Gemfile.lock durch CRLF ersetzt.

Die Datei hat die ursprünglichen Zeilenenden in Ihrem Arbeitsverzeichnis.   Warnung: LF wird in README durch CRLF ersetzt.

Was ist der Unterschied zwischen LF und CRLF?

Sollte ich langfristig besorgt sein oder es einfach ignorieren und so weiter machen, wie ich es normalerweise tue?


818
2018-04-29 15:28


Ursprung


Antworten:


In Unix-Systemen wird das Ende einer Zeile mit einem Zeilenvorschub (LF) dargestellt. In Fenstern wird eine Zeile mit einem Wagenrücklauf (CR) und einem Zeilenvorschub (LF) also (CRLF) dargestellt. Wenn Sie Code von Git erhalten, der von einem Unix-System hochgeladen wurde, haben sie nur ein LF.

Wenn Sie diese Warnung deaktivieren möchten, geben Sie dies in der Git-Befehlszeile ein

git config core.autocrlf true

Wenn du eine intelligente Entscheidung treffen willst, wie git damit umgehen soll, lese die Dokumentation 

Hier ist ein Ausschnitt

Formatierung und Leerzeichen

Formatierung und Leerzeichen Probleme sind einige der frustrierenden und   subtile Probleme, denen viele Entwickler bei der Zusammenarbeit begegnen,   besonders plattformübergreifend. Es ist sehr einfach für Patches oder andere   kollaborierte Arbeit, um subtile Whitespaceänderungen einzuführen, weil   Redakteure stellen sie leise vor, und wenn Ihre Dateien jemals einen berühren   Windows-System, ihre Zeilenenden möglicherweise ersetzt werden. Git hat ein paar   Konfigurationsoptionen, um mit diesen Problemen zu helfen.

core.autocrlf

Wenn Sie unter Windows programmieren und mit Personen arbeiten, die dies nicht tun   (oder umgekehrt), bei einigen werden Sie wahrscheinlich Probleme mit der Zeilenendung bekommen   Punkt. Dies liegt daran, dass Windows ein Wagenrücklaufzeichen verwendet   und ein Zeilenvorschubzeichen für Zeilenumbrüche in seinen Dateien, während Mac und   Linux-Systeme verwenden nur das Zeilenvorschubzeichen. Dies ist ein subtiles aber   unglaublich nervige Tatsache der plattformübergreifenden Arbeit; viele Redakteure an   Windows ersetzt vorhandene LF-style-Zeilenenden automatisch mit CRLF oder   Fügen Sie beide Zeilenendezeichen ein, wenn der Benutzer die Eingabetaste drückt.

Git kann dies umgehen, indem CRLF-Zeilenendungen automatisch in LF konvertiert werden   Sie fügen dem Index eine Datei hinzu und umgekehrt, wenn Code ausgecheckt wird   auf dein Dateisystem. Sie können diese Funktionalität mit dem aktivieren   core.autocrlf Einstellung. Wenn Sie sich auf einem Windows-Computer befinden, legen Sie ihn auf true fest   - Dies konvertiert LF-Endungen in CRLF, wenn Sie Code auschecken:

$ git config --global core.autocrlf true

Wenn Sie auf einem Linux- oder Mac-System arbeiten, das LF-Zeilenenden verwendet, dann Sie   Ich möchte nicht, dass Git sie beim Auschecken automatisch konvertiert.   Wenn jedoch versehentlich eine Datei mit CRLF-Endungen eingefügt wird,   dann möchten Sie vielleicht, dass Git es repariert. Sie können Git anweisen, CRLF zu konvertieren   LF on commit, aber nicht andersherum, indem core.autocrlf auf gesetzt wird   Eingang:

$ git config --global core.autocrlf input

Dieses Setup sollte Sie mit CRLF-Enden in Windows-Checkouts verlassen,   aber LF-Endungen auf Mac- und Linux-Systemen und im Repository.

Wenn Sie ein Windows-Programmierer sind, der ein Windows-Only-Projekt ausführt, dann Sie   kann diese Funktionalität abschalten und die Wagenrückläufe in der   Repository, indem der config-Wert auf false gesetzt wird:

$ git config --global core.autocrlf false

1060
2018-04-29 15:34



Wenn Sie möchten, können Sie diese Funktion in Ihrer Git-Core-Konfiguration mit deaktivieren

git config core.autocrlf false

Aber es wäre besser, die Warnungen einfach loszuwerden

git config core.autocrlf true

309
2018-02-01 10:45