Gibt es eine Datei oder ein Menü, mit dem ich die Einstellungen für den Umgang mit Zeilenenden ändern kann?
Ich habe gelesen, dass es 3 Möglichkeiten gibt:
Kasse im Windows-Stil, Commit im Unix-Stil
Git konvertiert LF in CRLF, wenn Textdateien ausgecheckt werden. Beim Festschreiben von Textdateien wird CRLF in LF konvertiert. Für plattformübergreifende Projekte ist dies die empfohlene Einstellung unter Windows ("core.autocrlf" ist auf "true" gesetzt).
Checkout wie besehen, Commit im Unix-Stil
Git führt beim Auschecken von Textdateien keine Konvertierung durch. Beim Festschreiben von Textdateien wird CRLF in LF konvertiert. Für plattformübergreifende Projekte ist dies die empfohlene Einstellung unter Unix ("core.autocrlf" ist auf "input" gesetzt).
Kasse wie sie ist, Commit wie sie ist
Git führt beim Auschecken oder Festschreiben von Textdateien keine Konvertierungen durch. Die Auswahl dieser Option wird für plattformübergreifende Projekte nicht empfohlen ("core.autocrlf" ist auf "false" gesetzt).
Antworten:
Der normale Weg, dies zu kontrollieren, ist mit
git config
Zum Beispiel
Für Details scrollen Sie in diesem Link zu Pro Git nach unten zum Abschnitt "core.autocrlf".
Wenn Sie wissen möchten, in welcher Datei dies gespeichert ist, können Sie den folgenden Befehl ausführen:
und die globale Konfigurationsdatei von git sollte in einem Texteditor geöffnet werden, und Sie können sehen, woher diese Datei geladen wurde.
quelle
true
oderfalse
sind nur zwei Optionen, der Installer hat dreiinput
ist die 3. Option (wie in dem von mir angegebenen Link angegeben). Die 3 Optionen sindtrue
|false
|input
"1 ... ("core.autocrlf" is set to "true") ... 2 ... ("core.autocrlf" is set to "input") ... 3 ... ("core.autocrlf" is set to "false")"
Haben Sie also im Grunde Ihre eigene Frage beantwortet? :)Zeilenendformat, das im Betriebssystem verwendet wird
CR
(Carriage Return\r
) undLF
(Zeilenvor\n
) PaarLF
(LineFeed\n
)Wir können git so konfigurieren, dass Zeilenzeilenformate für jedes Betriebssystem auf zwei Arten automatisch korrigiert werden.
.gitattributes
DateiGlobale Konfiguration
Unter Linux / OSXDies beheben Sie
In WindowsCRLF
zu ,LF
wenn Sie begehen.Dadurch wird sichergestellt, dass beim Auschecken in Windows alle
LF
in konvertiert werdenCRLF
.gitattributes-Datei
Es ist eine gute Idee, eine
.gitattributes
Datei zu behalten , da wir nicht erwarten möchten, dass jeder in unserem Team seine Konfiguration festlegt. Diese Datei sollte im Stammpfad von repo bleiben, und falls vorhanden, wird git dies respektieren.Dadurch werden alle Dateien als Textdateien behandelt und in die Zeile des Betriebssystems konvertiert, die beim Auschecken endet, und
LF
automatisch wieder beim Festschreiben. Wenn Sie es explizit mitteilen möchten, verwenden SieDer erste dient zum Auschecken und der zweite zum Festschreiben.
Behandeln Sie alle
.jpg
Bilder unabhängig vom Pfad als Binärdateien. Es ist also keine Konvertierung erforderlich.Oder Sie können Pfadqualifizierer hinzufügen:
quelle
CR
(Wagenrücklauf) verwendet?CR
allein verwendet, OS X jedoch im AllgemeinenLF
.* text eol=lf
zweimal verwenden, um es unterLF
Windows auszuchecken ?* text=auto
kann git entscheiden , ob der Inhalt Text ist oder nicht. Das Erzwingen, dass alle Dateien Text sind, sollte* text
nur sein.eol=cr
Dateien unter Mac OS 9 und anderen älteren Plattformen ein?Zum Beispiel das Deaktivieren dieses Attributs für einen bestimmten Pfad [ . - text] zwingt git, beim Ein- und Auschecken die Zeilenenden nicht zu berühren. Meiner Meinung nach ist dies das beste Verhalten, da die meisten modernen Texteditoren beide Arten von Zeilenenden verarbeiten können. Wenn Sie als Entwickler beim Einchecken weiterhin die Konvertierung von Zeilenenden durchführen möchten, können Sie den Pfad so festlegen, dass er mit bestimmten Dateien übereinstimmt, oder das Attribut eol (in .gitattributes) in Ihrem Repository festlegen.
Schauen Sie sich auch diesen verwandten Beitrag an, in dem die Datei und das Textattribut .gitattributes ausführlicher beschrieben werden: Was ist die beste CRLF-Strategie (Wagenrücklauf, Zeilenvorschub) mit Git?
quelle
. - text
gibtis not a valid attribute name: .gitattributes:1
bitte setzencat .gitattributes
Für mich war der Trick, den Befehl auszuführen
Im Ordner des Projekts wollte ich es speziell für ein Projekt.
Dieser Befehl hat die Datei im Pfad {Projektname} /. Git / config (fyi .git ist ein versteckter Ordner) durch Hinzufügen der Zeilen geändert
am Ende der Datei. Ich nehme an, das Ändern der Datei macht den gleichen Trick.
quelle
Wenn Sie die Dateiformate, die vom PC-Format in das UNIX-Format geändert wurden, zurückkonvertieren möchten.
(1) Sie müssen Tortoise GIT neu installieren und im Abschnitt "Line Ending Conversion" sicherstellen, dass Sie die Option "Check out as is - Check in as is" ausgewählt haben.
(2) und behalten Sie die verbleibenden Konfigurationen bei.
(3) Sobald die Installation abgeschlossen ist
(4) Schreiben Sie alle Dateierweiterungen, die in das UNIX-Format konvertiert wurden, in eine Textdatei (extensions.txt).
(5) Kopieren Sie die Datei in Ihren Klon. Führen Sie den folgenden Befehl in GITBASH aus
quelle