Ich bin ein Neuling und brauche Hilfe. Ich benutze msysgit unter Windows.
Beim Ausführen des Befehls git add [folderName]
erhalte ich die Antwort:
fatal: LF would be replaced by CRLF in [.css file or .js file]
und wenn Sie versuchen, ein Commit auszuführen, passiert nichts.
$ git commit
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# so01/
nothing added to commit but untracked files present (use "git add" to track)
Einige dieser css/js-Dateien wurden aus dem Internet heruntergeladen, daher denke ich, dass sie LF..__ haben. Wenn ich die Datei öffne und den Inhalt ausschneide/einfüge, dann bekomme ich den Fehler in der nächsten Datei und so weiter.
Jede Hilfe wird sehr geschätzt.
Bearbeiten
Die Einstellung von core.autocrlf
auf false scheint das Problem zu lösen, aber ich habe in vielen Beiträgen gelesen, dass diese Option nicht auf false gesetzt ist.
Kann mir jemand zeigen, wo ich herausfinden kann, welche Probleme in dieser Situation auftreten können?
Vertrauen Sie den Code-Editoren, um die Zeilenenden zu bearbeiten. Auto crlf sollte falsch sein. Lassen Sie die Quellcodeverwaltung nicht zu intelligent werden. Wenn Sie Ihr Quellcodeverwaltungswerkzeug nicht benötigen, um Ihre Zeilenenden zu ändern, tun Sie dies nicht. Das wird weh tun.
Um eine akzeptierte Antwort zu wiederholen: "Wenn Sie keine spezifische Behandlung sehen, die sich mit nativem Eol befassen muss, ist es besser, autocrlf auf false zu setzen."
Auch aus dem Progit-Buch am Ende des Abschnitts zu autocrlf:
"Wenn Sie ein Windows-Programmierer sind, der ein reines Windows-Projekt ausführt, können Sie diese Funktion deaktivieren, indem Sie die Wagenrückläufe im Repository aufzeichnen, indem Sie den Konfigurationswert auf" false "setzen.
Die einzige andere Hilfe, die ich geben kann, ist, wenn Sie die andere Route wählen, machen Sie sich mit vim -b
vertraut, das Sonderzeichen wie CR in MSysGit und git show HEAD:path/to/your/file.txt
zeigt, die Ihnen die Datei in der von git gespeicherten Weise anzeigen soll es.
Stellen Sie core.whitespace cr-at-eol
so ein, dass Patches und Diffs CRs nicht als möglicherweise problematische Leerzeichen hervorheben.
Die Mühe nicht wert. Speichern Sie, wie es ist.
sehr neu in diesem Sinne, so dass das Setzen von core.autocrlf auf false für mich nicht sehr sinnvoll war. Für andere Neulinge gehen Sie in die Konfigurationsdatei in Ihrem .git-Ordner und fügen Sie Folgendes hinzu:
[core]
autocrlf = false
unter der Überschrift [Kern].
Das Problem tritt wahrscheinlich auf, weil Sie Git so einstellen, dass Dateien intern mit crlf
mit der Einstellung core.eol
gespeichert werden. Wenn Sie eine Datei hinzufügen, warnt Sie Git, dass diese in das interne Format geändert wird.
Git funktioniert am besten mit lf
Zeilenenden, also möglichst immer mit core.eol = lf
.
Dies sollte erklären, wann core.autocrlf
, verwendet werden sollte. Warum sollte ich core.autocrlf = true in Git verwenden?
Möglicherweise möchten Sie auch core.safecrlf
verwenden. Überprüfen Sie git config --help
für Details zu den Einstellungen.
Die automatische Erkennung von Formaten funktioniert ziemlich gut. Daher ist core.autocrlf=true
unter Windows eine wirklich gute Idee.
Sagen git config --global core.safecrlf=false
sagt zu git: Hey, bitte konvertiere meine wrong Zeilenenden (nur LF) zu Windows Zeilenenden (CRLF) und störe mich nicht damit.
Daher sollten Sie core.safecrlf
wirklich deaktivieren.
Längere Antwort unter: https://stackoverflow.com/a/15471083/873282