Die drei Werte für autocrlf
:
true
- Wenn Inhalt in das Repository gelangt (festgeschrieben wird), werden seine Zeilenenden in LF konvertiert, und wenn Inhalt aus dem Repository kommt (ausgecheckt wird), werden die Zeilenenden in CRLF konvertiert. Dies ist im Allgemeinen für ahnungslose Windows-Benutzer / Editoren gedacht. Unter der Annahme, dass ein Editor (oder Benutzer) Dateien mit CRLF-Endungen erstellen wird und ausflippt, wenn normale LF-Endungen angezeigt werden, Sie jedoch LF-Endungen im Repo möchten, wird dies Sie hoffentlich abdecken. Es ist jedoch möglich, dass etwas schief geht. In den verknüpften Fragen finden Sie Beispiele für falsche Zusammenführungskonflikte und Berichte über geänderte Dateien.
input
- Wenn Inhalte in das Repository gelangen, werden ihre Zeilenenden in LF konvertiert, aber der Inhalt bleibt auf dem Weg nach draußen unberührt. Dies liegt im Wesentlichen im selben Bereich wie true
unter der Annahme, dass die Editoren tatsächlich korrekt mit LF-Endungen umgehen können. Sie schützen sich nur vor der Möglichkeit, versehentlich eine Datei mit CRLF-Endungen zu erstellen.
false
- git befasst sich überhaupt nicht mit Zeilenenden. Es liegt an dir. Dies ist, was viele Leute empfehlen. Wenn mit dieser Einstellung die Zeilenenden einer Datei durcheinander gebracht werden sollen, müssen Sie sich dessen bewusst sein, sodass Zusammenführungskonflikte viel weniger wahrscheinlich sind (vorausgesetzt, informierte Benutzer). Die Schulung von Entwicklern in der Verwendung ihrer Editoren / IDEs kann das Problem so gut wie lösen. Alle Editoren, die ich für Programmierer gesehen habe, sind in der Lage, damit umzugehen, wenn sie richtig konfiguriert sind.
Beachten Sie, dass dies autocrlf
keine Auswirkungen auf Inhalte hat, die sich bereits im Repository befinden. Wenn Sie zuvor etwas mit CRLF-Endungen festgelegt haben, bleiben diese so. Dies ist ein sehr guter Grund, um abhängig von autocrlf zu vermeiden; Wenn ein Benutzer es nicht eingestellt hat, kann er Inhalte mit CRLF-Endungen in das Repo aufnehmen, und es bleibt bestehen. Eine stärkere Möglichkeit, die Normalisierung zu erzwingen, ist das Textattribut . Wenn Sie es auto
für einen bestimmten Pfad auf setzen, wird es für die Normalisierung am Zeilenende markiert, vorausgesetzt, git entscheidet, dass der Inhalt Text ist (nicht binär).
Eine verwandte Option ist safecrlf
, die im Grunde nur eine Möglichkeit ist, um sicherzustellen, dass Sie keine CRLF-Konvertierung für eine Binärdatei irreversibel durchführen.
Ich habe nicht viel Erfahrung im Umgang mit Windows-Problemen und Git, daher ist Feedback zu Implikationen / Fallstricken auf jeden Fall willkommen.