1228 Stimmen

git ersetzt LF durch CRLF

Ich führe Git auf einem Windows XP-Rechner aus und verwende Bash. Ich habe mein Projekt aus SVN exportiert und dann ein leeres Repository geklont.

Dann habe ich den Export in das Verzeichnis bare repositories eingefügt und eine:

git add -A

Daraufhin erhielt ich eine Liste von Nachrichten:

LF wird durch CRLF ersetzt

Was sind die Auswirkungen dieser Umstellung? Es handelt sich um eine .NET-Lösung in Visual Studio.

7voto

Kshitiz Punkte 59

CRLF könnte ein Problem verursachen, wenn Sie Ihren "Code" in zwei verschiedenen Betriebssystemen (Linux und Windows) verwenden. Mein Python-Skript wurde in einem Linux-Docker-Container geschrieben und dann mit Windows git-bash gepusht. Es gab mir die Warnung, dass LF durch CRLF ersetzt wird. Ich habe nicht viel darüber nachgedacht, aber als ich das Skript später startete, sagte es /usr/bin/env: 'python\r': No such file or directory . Nun, da ein \r für Verzweigungen für Sie. Windows verwendet "CR" - Carriage Return - zusätzlich zu ' \n ' als neues Zeilenzeichen - \n\r . Das ist etwas, was Sie vielleicht in Betracht ziehen sollten.

7voto

jabberwocky Punkte 886

Andere Antworten sind fantastisch für das allgemeine Konzept. Ich lief in ein Problem, wo nach der Aktualisierung die Warnung immer noch auf bestehende Repos, die Commits in früheren Einstellung hatte passiert.

Das Hinzufügen von --renormalize half, z. B.

git add --renormalize .

Von der docs :

" Wenden Sie den Prozess "clean" frisch auf alle verfolgten Dateien an, um sie zwangsweise sie wieder in den Index aufzunehmen. Dies ist nützlich nach einer Änderung der core.autocrlf-Konfiguration oder dem Text-Attribut, um Dateien zu korrigieren Dateien zu korrigieren, die mit falschen CRLF/LF-Zeilenenden hinzugefügt wurden. Diese Option impliziert -u."

7voto

Blind2k Punkte 120

Ich hatte gerade den gleichen Fehler. Es geschah nach der Installation von NVM auf Windows 10.

Die Einstellung von autoclrf in allen Ebenen hat nicht funktioniert.
Ich benutzte In CMD: "git ls-files --eol"

i/lf    w/crlf  attr/             src/components/quotes/ExQuoteForm.js
i/lf    w/lf    attr/                   src/components/quotes/HighlightedQuote.js

Schlussfolgerung: Die von mir erstellten Dateien haben ein anderes Ende.

So ändern Sie die Dateien und setzen sie zurück

git config core.autocrlf false 
git rm --cached -r . 
git reset --hard

Obwohl: Bei einigen Projekten musste ich das Repository löschen und neu beginnen.

6voto

tiltedtimmy Punkte 235

OP's Frage ist Windows bezogen und ich konnte nicht andere verwenden, ohne in das Verzeichnis zu gehen oder sogar die Datei in Notepad++ als Administrator auszuführen hat nicht funktioniert. Also musste ich diesen Weg gehen:

C:\Program Files (x86)\Git\etc>git config --global core.autocrlf false

6voto

1991tama1991 Punkte 77
  1. Öffnen Sie die Datei im Notepad++.
  2. Gehen Sie zu Bearbeiten/EOL-Konvertierung.
  3. Klicken Sie auf das Windows-Format.
  4. Speichern Sie die Datei.

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