Wie kann ich sehen, welche Art von Zeilenenden sich bereits im Git-Repository befinden?

Lesezeit: 3 Minuten

Zunächst einmal frage ich nicht, was es bedeutet oder wie man es ändert. Was mich am meisten interessiert, ist: Wie kann ich sehen, was sich bereits im Repo befindet? Welche Zeilenenden.

Ich habe meine Repositories auf Github und Bitbucket.

Danke für die Hilfe

Sie können diesen Befehl verwenden:

git ls-files --eol

Es wird eine Zeile pro Datei mit den folgenden Informationen ausgegeben:

i/lf    w/crlf  attr/text=auto eol=lf   file.txt

In diesem Beispiel i/lf bedeutet, dass die Datei verwendet lf im Index und w/crlf bedeutet es verwendet crlf im Arbeitsverzeichnis.

Benutzer-Avatar
TrientP

Um festzustellen, welche Zeilenenden eine Datei im Repository verwendet, verwenden Sie git show um den Inhalt der Datei zu extrahieren. Dadurch erhalten Sie den Inhalt ohne die Zeilenenden zu ändern.

Wenn Sie sich die Dateien in Ihrem lokalen Arbeitsverzeichnis wie in einer der anderen Antworten ansehen, erfahren Sie nur, welche Zeilenenden sich im ausgecheckten Arbeitsverzeichnis befinden. Git kann, und wird es unter Windows normalerweise tun, die Zeilenenden ändern, wenn Dateien ausgecheckt werden, und die Änderung rückgängig machen, wenn sie festgeschrieben werden. Sie sehen also CR-LF im Arbeitsverzeichnis, obwohl die Daten im Repository LF verwenden.

Verwenden git show oder git cat-file -p wird diese Konvertierung umgehen.

Die Ausgabe von git show kann an eine Datei geleitet werden, damit sie automatisch den Typ des Zeilenendes erkennt. Ex:

git show HEAD:file.c | file -
/dev/stdin: ASCII text, with CRLF line terminators

Sie können die Revision von ändern HEAD zu etwas anderem, um zu sehen, wie die Zeilenenden in einer älteren Revision waren. Zum Beispiel, um zu sehen, ob sie sich geändert haben.

Benutzer-Avatar
Taylan Karaman

Laden Sie den Repository-Quellcode als .zip Datei. Verwenden Sie Notepad++, um die Dateien nach der Aktivierung zu überprüfen:

View->Show Symbol->Show End Of Line setting

Zeilenenden sind ein Attribut von Dateien, keine Repositories (und technisch gesehen können sie sogar innerhalb derselben Datei gemischt werden). Um zu sehen, welche Art von Zeilenenden eine bestimmte Datei hat, können Sie etwas wie das verwenden file Befehl auf einem Linux-System (das auch auf OSX funktionieren sollte):

$ file some-file.txt
some-file.txt: ASCII text

Dies zeigt an, dass die Zeilenenden mit dem Systemstandard übereinstimmen, also wären es in meinem Fall Unix-Zeilenenden. Windows-Zeilenenden würden wie folgt angezeigt:

$ file some-file.txt
some-file.txt: ASCII text, with CRLF line terminators

Alternativ öffnen Sie die Datei in einem anständigen Texteditor. Die meisten haben eine Möglichkeit, Ihnen den Stil des Zeilenendes zu zeigen. Zum Beispiel zeigt Emacs

U(DOS)

in der Modeline für das zweite obige Beispiel, was auf CRLF (“DOS”) Zeilenenden hinweist. Die meisten anderen Editoren haben etwas Ähnliches.

Wenn Sie die sehen möchten core.autocrlf Einstellung für ein bestimmtes Repository ausführen git config core.autocrlf im Inneren. Sie erhalten den Wert zurück, auf den es gesetzt ist, oder nichts, wenn es nicht gesetzt ist. Diese Einstellungen gelten lokal für das Repository (d. h. sie werden nicht mit GitHub, Bitbucket oder den lokalen Kopien anderer Benutzer geteilt).

Vielleicht möchten Sie auch die Repositorys inspizieren .gitattributes oder .git/info/attributes Dateien, falls vorhanden. Ersteres wird als reguläre Datei im Repository gespeichert und kann daher mit anderen Personen geteilt werden, und letzteres ist spezifisch für Ihr lokales Repository.

1242020cookie-checkWie kann ich sehen, welche Art von Zeilenenden sich bereits im Git-Repository befinden?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy