Hallo, Entdecker! An dieser Seite wird aktiv gearbeitet, oder sie wird noch übersetzt. Die neuesten und genauesten Informationen finden Sie in unserer englischsprachigen Dokumentation.
Artikelversion: Enterprise Server 2.15

Diese Version von GitHub Enterprise wird eingestellt am Diese Version von GitHub Enterprise wurde eingestellt am 2019-10-16. Es wird keine Patch-Freigabe vorgenommen, auch nicht für kritische Sicherheitsprobleme. For better performance, improved security, and new features, upgrade to the latest version of GitHub Enterprise. For help with the upgrade, contact GitHub Enterprise support.

Git zur Verarbeitung von Zeilenabschlüssen konfigurieren

Um Probleme bei Ihren Diffs zu verhindern, können Sie Git zur korrekten Verarbeitung von Zeilenabschlüssen konfigurieren.

Jedesmal, wenn Sie auf der Tastatur die Eingabetaste drücken, fügen Sie ein unsichtbares Zeichen ein: einen Zeilenabschluss. Die unterschiedlichen Betriebssysteme haben Zeilenabschlüsse schon immer unterschiedlich verarbeitet.

Wenn Sie Änderungen in einer Datei anzeigen, verarbeitet Git Zeilenabschlüsse auf eigene Art und Weise. Da Sie mit Git und GitHub Enterprise an Projekten zusammenarbeiten, könnte Git unerwartete Ergebnisse produzieren, wenn Sie beispielsweise an einem Windows-PC arbeiten und Ihr Mitarbeiter eine Änderungen unter OS X vorgenommen hat.

Globale Einstellungen für Zeilenabschlüsse

Mit dem Befehl git config core.autocrlf können Sie ändern, wie Git Zeilenabschlüsse verarbeitet. Dazu ist ein einziges Argument nötig.

Unter OS X übergeben Sie einfach input an die Konfiguration. Ein Beispiel:

$ git config --global core.autocrlf input
# Konfiguriert Git unter OS X zur korrekten Verarbeitung von Zeilenabschlüssen

Unter Windows übergeben Sie einfach true an die Konfiguration. Ein Beispiel:

$ git config --global core.autocrlf true
# Konfiguriert Git unter Windows zur korrekten Verarbeitung von Zeilenabschlüssen

Unter Linux übergeben Sie einfach input an die Konfiguration. Ein Beispiel:

$ git config --global core.autocrlf input
# Konfiguriert Git unter Linux zur korrekten Verarbeitung von Zeilenabschlüssen

Unter OS X und Linux übergeben Sie in der Regel input für diese Einstellung. Unter Windows verwenden Sie für gewöhnlich true. Ein Beispiel:

$ git config --global core.autocrlf input
# Konfiguriert Git unter OS X oder Linux zur korrekten Verarbeitung von Zeilenabschlüssen

$ git config --global core.autocrlf true
# Konfiguriert Git unter Windows zur korrekten Verarbeitung von Zeilenabschlüssen

Repository-abhängige Einstellungen

Optional können Sie Repository-abhängig konfigurieren, wie Git Zeilenabschlüsse verarbeitet, indem Sie eine spezielle .gitattributes-Datei konfigurieren. Diese Datei wird in das Repository committet und überschreibt die Einstellung core.autocrlf eines Einzelbenutzers. So wird sichergestellt, dass das Verhalten für alle Benutzer konsistent ist, unabhängig von deren Git-Einstellungen. Der Vorteil einer .gitattributes-Datei besteht darin, dass Ihre Zeilenkonfigurationen mit Ihrem Ihrem Repository verknüpft werden. So besteht nicht die Gefahr, dass Mitarbeiter andere Einstellungen für Zeilenabschlüsse festgelegt haben wie Sie.

Die Datei .gitattributes muss im Root des Repositorys erstellt und wie jede andere Datei committet werden.

Eine .gitattributes-Datei sieht wie eine Tabelle mit zwei Spalten aus:

Beispiel

Hier sehen Sie ein Beispiel für eine .gitattributes-Datei. Sie können Sie als Vorlage für Ihre Repositorys verwenden:

# Legen Sie das Standardverhalten für den Fall fest, wenn jemand keine core.autocrlf festgelegt haben.
* text=auto

# Geben Sie explizit Textdateien an, die beim Auschecken immer normalisiert und in
# native Zeilenabschlüsse umgewandelt werden sollen.
*.c text
*.h text

# Geben Sie Dateien an, die beim Auschecken immer CRLF-Zeilenabschlüsse haben werden.
*.sln text eol=crlf

# Führen Sie alle Dateien auf, die wirklich binär sind und nicht geändert werden sollten.
*.png binary
*.jpg binary

Wie Sie sehen, werden Dateien aufgeführt – *.c, *.sln, *.png –, durch ein Leerzeichen voneinander getrennt und mit einer Einstellung – text, text eol=crlf, binary – versehen. Nachfolgend sehen wir uns einige mögliche Einstellungen an.

`text=auto`
Git verarbeitet die Dateien so, wie es für sinnvoll erachtet wird. Das ist eine gute Standardoption.
`text eol=crlf`
Git will always convert line endings to `CRLF` on checkout. You should use this for files that must keep `CRLF` endings, even on OSX or Linux.
`text eol=lf`
Git will always convert line endings to `LF` on checkout. Verwenden Sie diese Einstellung für Dateien, die die LF-Abschlüsse behalten sollen, auch unter Windows.
`binary`
Git versteht, dass die angegebenen Dateien keine Textdateien sind, und versucht nicht, sie umzuwandeln. The `binary` setting is also an alias for `-text -diff`.

Ein Repository nach dem Ändern der Zeilenabschlüsse aktualisieren

Wenn Sie die Option core.autocrlf eingestellt und eine .gitattributes-Datei committet haben, möchte Git möglicherweise Dateien committen, die Sie nicht geändert haben. An dieser Stelle möchte Git die Zeilenabschlüsse jeder Datei für Sie ändern.

The best way to automatically configure your repository's line endings is to first backup your files with Git, delete every file in your repository (except the .git directory), and then restore the files all at once.

  1. Speichern Sie Ihre aktuellen Dateien in Git, damit nichts von Ihrer Arbeit verloren geht.

    $ git add . -u
    $ git commit -m "Saving files before refreshing line endings"
  2. Fügen Sie alle geänderten Dateien wieder hinzu, und normalisieren Sie die Zeilenabschlüsse.

    $ git add --renormalize
  3. Zeigen Sie die umgeschriebenen, normalisierten Dateien an.

    $ git status
  4. Committen Sie die Änderungen an Ihr Repository.

    $ git commit -m "Normalize all the line endings"

Weiterführende Informationen

Menschliche Unterstützung einholen

Sie können das Gesuchte nicht finden?

Kontakt