Git hat zwei Orte, die Feeds Leitung gesteuert werden kann:
- In den globalen Konfigurationseinstellungen auf Ihrem System
- In der .gitattributes-Datei, die pro Repo-/Projekt gilt. Diese Einstellungen überschreiben die Konfigurationseinstellungen des Benutzers.
In Ihren Git-Einstellungen haben Sie core.autocrlf = true. Das heißt, du sagst Git, die Zeile zu ändern, die auf CRLF endet. Sie können dies ändern, um zu sehen, ob Git aufhört, die Zeilenenden zu ändern.
Ein besserer Ansatz kann sein, die richtigen Zeilenenden in der Datei .gitattributes zu setzen. Dies ist für das Repository im Stamm festgelegt und überschreibt die individuellen Einstellungen des Benutzers. Dies stellt sicher, dass alle Benutzer, die sich für das Repo verpflichten, die richtigen Zeilenenden haben. Da es sich anhört, als würden Sie an einem * nix-basierten Projekt arbeiten, wäre es wahrscheinlich ratsam, die Zeilenenden auf Zeilenvorschub zu setzen. In den .gitattribute-Dateien könnten Sie so etwas haben.
# Set all files to have LF line endings
* text eol=lf
Dieser Link bietet eine detailliertere Erläuterung der Optionen, die Sie in der Datei festlegen: https://help.github.com/articles/dealing-with-line-endings/
EDIT 1: Dachte, ich hinzufügen, das von der eigentlichen Git-Dokumentation: https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration
Kern .autocrlf
Wenn Sie unter Windows programmieren und mit Leuten arbeiten, die nicht sind (oder umgekehrt), werden Sie wahrscheinlich auf line-en stoßen ding Probleme zu einem bestimmten Zeitpunkt. Dies liegt daran, dass Windows in seinen Dateien sowohl ein Carriage-Return-Zeichen als auch ein Zeilenvorschubzeichen für Zeilenumbrüche verwendet, während Mac- und Linux-Systeme nur das Zeilenvorschubzeichen verwenden. Dies ist eine subtile, aber unglaublich nervige Tatsache der Cross-Plattform-Arbeit; Viele Editoren unter Windows ersetzen stillschweigend die vorhandenen LF-artigen Zeilen mit CRLF oder fügen beide Zeilenendezeichen ein, wenn der Benutzer die Eingabetaste drückt.
Git kann dies umgehen, indem CRLF-Zeilenendungen automatisch in LF konvertiert werden, wenn eine Datei zum Index hinzugefügt wird und umgekehrt, wenn Code in Ihrem Dateisystem ausgecheckt wird. Sie können diese Funktionalität mit der Einstellung core.autocrlf aktivieren.Wenn Sie auf einem Windows-Rechner sind, setzen Sie ihn auf true - dies wandelt LF Endungen in CRLF, wenn Sie Code überprüfen:
$ git config---global core.autocrlf wahr
Wenn Sie sind ein Linux oder Mac System, das LF Zeilenendungen verwendet, dann möchten Sie nicht Git zu automatisch konvertieren sie beim Auschecken von Dateien; Wenn jedoch versehentlich eine Datei mit CRLF-Endungen eingeführt wird, möchten Sie möglicherweise Git, um es zu beheben. Sie können Git sagen CRLF zu konvertieren auf verpflichten, LF aber nicht umgekehrt von core.autocrlf zu Eingangseinstellung:
$ git config---global core.autocrlf Eingang
Diese Einstellung sollten Sie verlassen mit CRLF-Endungen in Windows-Checkouts, aber LF-Endungen auf Mac- und Linux-Systemen und im Repository.
Wenn Sie einen Windows-Programmierer machen einen reinen Windows-Projekt sind, dann Sie können diese Funktionalität deaktivieren, in dem Repository die Zeilenumbrüche Aufnahme durch die Config Wert auf false gesetzt:
$ git config- --global core.autocrlf falsch
See: https://stackoverflow.com/questions/1967370/git-replacing-lf-with-crlf – IngoB
Dank @IngoB! Das ist der verständlichste Zusammenbruch, den ich gesehen habe. – AreDubya