Git LFS für große Dateien nutzen

Zuletzt aktualisiert: 19.02.2026 3 Min. Auf GitLab bearbeiten
Auf dieser Seite
Zusammenfassung

Git LFS auf git.nrw ermöglicht es Ihnen, große Dateien effizient zu versionieren und zu verwalten, ohne Ihre Repositories aufzublähen. Es speichert große Dateien außerhalb der regulären Git-Historie und hält nur Referenzen in Ihrem Repository. Git LFS ist standardmäßig für jedes neue Projekt aktiviert, muss aber dennoch installiert und konfiguriert werden.

Das Pushen mehrerer großer Dateien in Ihr Repository kann dazu führen, dass es seine maximale Kapazität (2 GiB) relativ schnell erreicht. Um dies zu verhindern, können große Dateien im Git Large File Storage außerhalb Ihres Repositorys gespeichert werden, wobei nur ein kleiner, textbasierter Pointer im Repository verbleibt, den Git verwaltet.

Git LFS

Im Git LFS gespeicherte Dateien, erkennbar am LFS-Tag hinter dem Dateinamen

Dies hilft bei allen großen Dateien, aber normalerweise speichert Git nur die Unterschiede zwischen Versionen von Nicht-Binärdateien im Klartext, um Speicherplatz zu sparen. Binärdateien können nicht auf diese Weise überwacht werden, was dazu führen würde, dass Git jede Version dieser Dateien speichern muss und der benötigte Speicherplatz mit jeder neuen Version potenziell vervielfacht wird. Um dies zu verhindern, können diese Dateien im Git Large File Storage außerhalb Ihres Repositorys gespeichert werden, wobei nur ein kleiner, textbasierter Pointer im Repository verbleibt.

Wichtig zu beachten ist, dass die Größe Ihres LFS auch zur Gesamtgröße Ihres Repositorys zählt, die bei git.nrw standardmäßig auf 2 GiB begrenzt ist. Es hilft lediglich dabei, Prozesse wie clone, fetch und pull zu beschleunigen, indem die zu verarbeitende Datenmenge reduziert wird.

Dateien in das Git LFS importieren

Eine Datei, die über die Weboberfläche hochgeladen wird, wird immer Ihrem Repository hinzugefügt, nicht dem LFS. Wenn Sie Dateien zum LFS Ihres Projekts hinzufügen möchten, müssen Sie konfigurieren, welche Dateien über git lfs track verfolgt werden sollen, um die in .gitattributes festgelegten Regeln zu ändern und Ihr Repository zu committen und zu pushen. Installieren Sie Git LFS auf Ihrem lokalen Rechner.

Zum Beispiel:

  1. Git-LFS-Erweiterung auf dem lokalen Rechner installieren

    1.1 sudo apt install git-lfs (Debian/Ubuntu)

    1.2 sudo dnf install git-lfs (Fedora)

    1.3 brew install git-lfs (macOS)

    1.4 Installer von https://git-lfs.github.com herunterladen (Windows)

    1.5 choco install git-lfs (Windows)

  2. git lfs track "*.png"

  3. git add .gitattributes (Datei muss im Stammverzeichnis des Projekts liegen)

  4. git add example.png

  5. git commit -m "Track file with Git LFS"

  6. git push

Ein Repository forken, das Git LFS verwendet

Wenn Sie ein Repository forken, enthält Ihr Fork die vorhandenen LFS-Objekte des Upstream-Repositorys, die zum Zeitpunkt Ihres Forks existierten. Wenn Sie neue LFS-Objekte zu Ihrem Fork hinzufügen, gehören diese nur zu Ihrem Fork und nicht zum Upstream-Repository. Der gesamte Objektspeicher erhöht sich nur für Ihren Fork.

Wenn Sie einen Merge Request von Ihrem Fork zurück zum Upstream-Projekt erstellen und Ihr Merge Request ein neues Git-LFS-Objekt enthält, ordnet GitLab das neue LFS-Objekt nach dem Merge dem Upstream-Projekt zu.

Ein Repository klonen, das Git LFS verwendet

Wenn Sie ein Repository klonen, das Git LFS verwendet, erkennt Git die LFS-getrackten Dateien und klont sie über HTTPS. Wenn Sie git clone mit einer SSH-URL ausführen, wie user@hostname.com :group/project.git, müssen Sie Ihre GitLab-Zugangsdaten erneut für die HTTPS-Authentifizierung eingeben.

Dateien aus einem Repository zu Git LFS migrieren

Wenn Ihr Git-Repository zu groß wird und Sie Dateien aus Ihrem Repository zu Git LFS migrieren möchten, wird dabei Ihre Historie umgeschrieben, was eine „destruktive" Operation ist und daher mit Vorsicht behandelt werden sollte. Details finden Sie in der git-lfs-migrate-Dokumentation .