Wie Git LFS funktioniert: Überblick über Git Large File Storage

Entwicklungsteams auf der ganzen Welt verwenden Git zur Verwaltung von Quellcode. Und viele verwenden Git LFS – Git Large File Storage -, um große Dateien zu verwalten und zu speichern. Hier erfahren Sie, wie Git LFS funktioniert und wann Sie es verwenden sollten.

Kann Git große Dateien verwalten?

Git kann große Dateien nicht allein verwalten. Deshalb fügen viele Git-Teams Git LFS hinzu, um mit großen Dateien in Git umgehen zu können.

Was ist Git LFS (Git Large File Storage)?

Git LFS ist eine Git-Erweiterung zur Verwaltung großer Dateien und Binärdateien in einem separaten Git-Repository.

Die meisten Projekte haben heute sowohl Code als auch Binärdateien. Und das Speichern großer Binärdateien in Git-Repositories kann für Git-Benutzer ein Engpass sein.

Deshalb fügen einige Git-Benutzer Git Large File Storage (LFS) hinzu.

Wie funktioniert Git LFS?

Git LFS verwendet Zeiger anstelle der eigentlichen Dateien oder binären großen Objekte (Blobs).

Anstatt also große Dateien/Blobs in ein Git-Repository zu schreiben, schreiben Sie eine Zeigerdatei. Und die Dateien/Blobs selbst werden auf einen separaten Server geschrieben. Sie können sogar mehrere Server in Git LFS verwenden.

Der Einstieg ist recht einfach. Sie laden die Erweiterung herunter und konfigurieren Ihre Dateitypen.

Die Verwendung von Git LFS ermöglicht es, große Dateien zu versionieren (und Blobs zu verwalten) und gleichzeitig Platz in Git-Repositories zu schaffen. Und Git LFS ist oft eine Lösung für das Pushen großer Dateien auf GitHub.

Git-Probleme über LFS hinaus

Git hat Probleme, die über Git LFS hinausgehen. Und die Sicherheit ist ein großes davon. Dem nativen Git fehlt es an Sicherheit, und die Zusatzoptionen zur Absicherung von Git sind nicht besonders gut. In unserem Whitepaper – How to Lock Down Git – erfahren Sie, was Sie für die Sicherheit von Git tun sollten.

Lock Down Git

Sollte ich Git LFS verwenden?

Sie sollten Git LFS verwenden, wenn Sie große Dateien oder Binärdateien in Git-Repositories speichern möchten.

Das liegt daran, dass Git dezentralisiert ist. Jeder Entwickler hat also den gesamten Änderungsverlauf auf seinem Computer. Und Änderungen in großen Binärdateien führen dazu, dass die Git-Repositories bei jeder Änderung der Datei (und beim Commit dieser Änderung) um die Größe der Datei wachsen. Das bedeutet, dass es ewig dauert, bis man die Dateien bekommt. Und wenn doch, wird es schwierig, die Binärdateien zu versionieren und zusammenzuführen.

Mit jedem Dateizuwachs wächst also auch das Git-Repository. Und wenn Git-Benutzer ein Repository abrufen und klonen müssen, führt dies zu Problemen.

Git LFS wurde entwickelt, um diese Probleme zu lösen. Aber es hat auch seine eigenen Probleme…

Wenn Git Large File Storage nicht funktioniert

Git LFS funktioniert. Aber die Teams sagen uns ständig, dass es schwer zu handhaben ist. Obwohl Git selbst kostenlos ist, kann es die Produktivität in die Höhe treiben.

Die Installation von Git LFS auf jedem Server und jeder Workstation (und/oder jedem Repo) kostet Zeit. Außerdem belastet es die Administratoren. Sobald es installiert ist, gibt es keine Sichtbarkeit und wenig Kontrolle darüber. Und wenn einige Entwickler nicht über die Git LFS-Erweiterung verfügen? Es bricht zusammen.

Es sind zusätzliche Schritte erforderlich, um Git Large File Storage mit Build-Runnern wie Jenkins zu pflegen. Das führt zu zusätzlichem Zeitaufwand – und zusätzlicher Komplexität.

All dies kann zu Leistungsproblemen führen.

Alternativen zu Git LFS

Git LFS ist nicht die einzige Möglichkeit, große Dateien in Git zu verwalten. Es gibt auch Alternativen.

Dazu gehören andere Open-Source-Lösungen oder Lösungen von Drittanbietern, wie zum Beispiel:

  • git-annex
  • git-bigfiles
  • git-fat
  • git-media
  • git-bigstore
  • git-sym

Aber genau wie Git LFS können auch diese Optionen zur Speicherung großer Dateien in Git Probleme verursachen. Es gibt eine bessere Möglichkeit, große Dateien und Binärdateien zu verwalten.

Die beste Versionskontrolle für große Binärdateien: Helix Core

Die Projekte von heute sind größer, mit mehr Dateien und gemischten Assets als je zuvor. Git und Git LFS allein können das nicht bewältigen. Aber Helix Core kann es.

Helix Core – Versionskontrollsoftware von Perforce – ist die beste Option für die Verwaltung großer Binärdateien. Das liegt daran, dass die Speicherung großer Dateien eine systemeigene Fähigkeit ist, keine Zusatzfunktion. Und sie ist kugelsicher.

In Helix Core können Sie Binärdateien neben Ihrem Quellcode speichern. In der Tat können alle Ihre größten Dateien – Binärdateien, Quellcode, Kunstdateien, Videodateien, Bilder, Bibliotheken und Build-Artefakte – in einem einzigen Repository gespeichert werden. Ohne große, verteilte Teams zu verlangsamen.

Überzeugen Sie sich selbst, warum Helix Core das Tool der Wahl für die Verwaltung großer Binärdateien ist.

Verwalten Sie große Dateien in Helix Core

By the Way, Perforce Has Git, Too

Haben Sie noch Teams, die große Dateien in Git verwalten müssen? Mit den Git-Tools von Perforce – Helix4Git und Helix TeamHub – können Sie diese in Ihre Build-Pipeline einbinden.

Helix4Git ist ein Git-Server innerhalb eines Perforce-Servers. Helix TeamHub ist eine Git-Code-Hosting-Lösung. Diese Tools ermöglichen es Git-Teams, die Geschwindigkeit und Leistung von Helix Core zu nutzen – während sie in Git arbeiten.

So können Sie Helix4Git neben Helix Core verwenden, um Ihr Git-Repository in Ihre Build-Pipeline einzubinden. Mit Helix4Git können Ihre Entwickler weiterhin ihre nativen Git-Tools verwenden. Aber sie erhalten ihre Dateien viel schneller.

Sie erhalten:

  • Schnellere CI/CD-Build-Performance.
  • Unterstützung für Multi-Repo-Projekte, Artefakt-Repositories und sogar eine Docker-Container-Registry.
  • Die Möglichkeit, nach und nach Nodes hinzuzufügen.
  • Replikation und garantiert aktuelle Inhalte ohne Verzögerung, anstatt zu kopieren.

Leave a Reply