Direkt zum Inhalt

Git Large File Storage (LFS) Überblick

Nutze Git Large File Storage (LFS) in deinen eigenen Repositories, um die Verwaltung großer Binärdateien zu erleichtern.
Aktualisierte 25. März 2025  · 9 Min. Lesezeit

Git ist ein weit verbreitetes Tool zur Versionskontrolle, das bei der Verwaltung von Softwareentwicklungsprojekten, Data Science Workflows und sogar Dokumentations-Repositories hilft. Allerdings hat das traditionelle Git seine Grenzen, wenn es um große Dateien geht. Große Dateien werden bei jedem Commit dupliziert, was das Repository aufbläht und die Arbeitsabläufe verlangsamt, da beim Ziehen von Änderungen mehrere Kopien großer Dateien benötigt werden. Aus diesem Grund kann die Verwaltung großer Dateien mit Git aus den folgenden Gründen ineffizient werden:

  • Große Repository-Größe: Wenn du große Dateien direkt in einem Git-Repository speicherst, erhöht sich dessen Gesamtgröße, was das Klonen und Holen von Dateien verlangsamt, vor allem wenn du an einem entfernten Repository arbeitest, das das Hoch- und Herunterladen von Dateien erfordert.
  • Ineffiziente Speicherung und Versionierung: Jedes Mal, wenn eine große Datei geändert wird, speichert Git eine neue Version in seiner Historie, was zu einer schnellen Aufblähung des Repositorys führt.
  • Leistungsprobleme: Bei einem großen Repository werden die Git-Operationen (z. B. Klonen, Pulling, Pushing) deutlich langsamer und benötigen mehr Speicherplatz.

In diesem Leitfaden werfen wir einen detaillierten Blick auf Git Large File Storage (Git LFS), eine Git-Erweiterung, die dir bei großen Dateien in deinem Repository hilft. So können wir Änderungen an großen Dateien effizienter speichern, ohne dass zusätzliche Duplikate oder Dateien gespeichert werden müssen. Du solltest sie immer dann verwenden, wenn du große Binärdateien in deinem Repository erwartest. Zunächst erkläre ich genauer, was es ist, wie es funktioniert, wann es eingesetzt wird und wie man es effektiv einrichtet.

Wenn du Git noch nicht kennst, schau dir unseren Leitfaden an Wie lerne ich Git und Kurs Einführung in Git.

Was ist Git LFS?

Git Large File Storage (Git LFS) ist eine Erweiterung für Git, die den Umgang mit großen Dateien verbessert.  

Es ändert die Art und Weise, wie Git mit dem Holen und Klonen von Daten umgeht, indem es Git um Funktionen für das faule Holen von Daten aus einem entfernten Repository und um einige clevere Dateiverwaltungsfunktionen erweitert. 

In jeder anderen Hinsicht ist das Nutzererlebnis nahtlos und dasselbe wie bei Git.

Wie sich Git LFS vom normalen Git Lernpfad unterscheidet

Bei traditionellem Git speichern wir die gesamte Historie des Repositorys im Verzeichnis .git. Dazu gehören auch die eigentlichen Textdateien, die im Laufe der Zeit geändert wurden. Außerdem werden ganze Repositories heruntergeladen, wenn wir git fetch oder git clone aufrufen, damit wir alle Dateien sofort zur Verfügung haben. Wenn wir Git LFS verwenden, ändert das ein paar Dinge. 

Erstens ersetzt Git LFS große Dateien durch leichtgewichtige Verweise auf einen entfernten Speicherplatz, sodass nicht jede Datei gespeichert werden muss. Zweitens werden große Dateien nur beim Auschecken in den Zweig heruntergeladen, d.h. wir laden große Dateien erst herunter, wenn wir bereit sind, sie zu bearbeiten. 

Und schließlich verwaltet es deinen lokalen Repository-Speicher, um alte Dateiversionen zu bereinigen und eine saubere Arbeitsumgebung zu erhalten.

Wie funktioniert das Git LFS?

Git LFS verwendet einen zeigerbasierten Speichermechanismus. Wenn du eine Datei für das LFS-Tracking angibst, ersetzt Git LFS sie durch eine Zeigerdatei im Repository und legt außerdem eine lokale Kopie im Cache ab. 

Wenn du Commits pushst, wird der lokale Cache auf einem entfernten Speicher (z. B. GitHub, GitLab, Bitbucket LFS-Server) aktualisiert. Wenn es Änderungen gibt und du auscheckst, aktualisieren diese Änderungen deinen lokalen Cache, um dir die neueste Arbeitskopie zur Verfügung zu stellen. 

Wenn du einen Einblick in eines der beliebtesten Remote-Repositories, GitHub, erhalten möchtest, schau dir diesen Kurs Einführung in GitHub an.

Die Verwendung von Git LFS hat viele Vorteile. So bleiben die Repositorien klein und überschaubar. Außerdem verbessert es die Leistung von Teams, die mit großen Dateien arbeiten. Außerdem vermeidet es die unnötige Duplizierung großer Dateien und hält so die Größe deines lokalen Repositorys überschaubar.

Git LFS einrichten

Bevor du Git LFS benutzen kannst, musst du ein paar Schritte einrichten. Es ist ein relativ einfacher Prozess, der die Installation der Erweiterung beinhaltet. Wenn du bereits Repositories hast, musst du sie migrieren. Wenn du ein neues Repository erstellst, kannst du einfach Git LFS starten.

Git LFS installieren

Um Git LFS zu nutzen, musst du es auf deinem System installieren. Der einfachste Weg ist, auf die git-lfs Website zu gehen und die Dateien zu installieren. Wenn du das getan hast, führst du git lfs install einmal in deiner Befehlskonsole aus, um Git LFS vollständig zu initialisieren und zu installieren.

Nutzung von Git LFS

Nach der Installation musst du sicherstellen, dass Git LFS für jedes Repository konfiguriert ist.  Verschiedene Remote-Git-Tracker (z.B. GitHub vs. Bitbucket) haben leicht unterschiedliche Schritte. Am besten befolgst du die empfohlenen Schritte für deinen jeweiligen Git Remote Tracker. Wenn du ein neues Repository initialisierst, kannst du git lfs install in diesem Repository ausführen, um die Hooks zu initialisieren und Dateien zum Lernpfad hinzuzufügen. Wenn du ein bestehendes Repository hast, kannst du git lfs migrate verwenden und dann die Prozeduren zur Bereinigung des .git-Verzeichnisses befolgen:

git reflog expire --expire-unreachable=now --all
git gc --prune=now

Git LFS in einem Projekt verwenden

Gehen wir einige der Einsatzmöglichkeiten von Git LFS in einem Projekt durch. Wir werden die Schritte des Verfolgens, Übertragens, Klonens und Ziehens großer Dateien aus einem Git LFS-Repository behandeln.

Lernpfad für große Dateien (git lfs track)

Um bestimmte Dateitypen zu verfolgen, können wir den Befehl git lfs track verwenden. Wenn ich zum Beispiel Lernpfade für CSV-Dateien erstellen möchte, würde ich den Befehl wie folgt schreiben: git lfs track "*.csv". Dies fügt auch Informationen zu unserer .gitattributes Datei hinzu, um sicherzustellen, dass wir Git LFS für diese spezielle Datei verwenden. Wir müssen jetzt zuerst unsere .gitattributes Datei pushen, um sicherzustellen, dass wir die LFS-Dateien richtig verfolgen.

git add .gitattributes
git commit -m "Adding LFS .gitattributes"
git push origin main

Hinzufügen und Übertragen von großen Dateien

Nachdem du den Lernpfad hinzugefügt hast, kannst du ihn wie gewohnt hinzufügen und festschreiben:

git add largefile.csv
git commit -m "Adding large file with Git LFS"
git push origin main

Hinter den Kulissen speichert Git LFS die Datei separat und ersetzt sie durch einen Zeiger im Repository. Es sollte eine ziemlich nahtlose Erfahrung sein.

Repositories mit Git LFS klonen (git lfs clone)

Wenn du eine neuere Version von Git hast (>= 2.3.0), sollte der Befehl git clone automatisch sowohl für deine LFS- als auch für deine Nicht-LFS-Dateien funktionieren. Wenn du eine ältere Version von Git verwendest, musst du den speziellen Befehl git lfs clone verwenden. Dies funktioniert anders als dein gewöhnlicher Klon, weil er sich auf die Zeigerinformationen für große Dateien bezieht und nur die Arbeitskopie jeder großen Datei klont. Weitere Informationen zum Klonen in Git findest du im folgenden Tutorial über Git Clone Branch.

Große Dateien ziehen (git lfs pull)

Wenn du deine großen LFS-Dateien aus deinem Repository holen und auschecken möchtest, dann kannst du die Funktion git lfs pull verwenden. Das ist etwas anderes als eine einfache git pull, die nur die Git-Dateien zieht. 

Hier ist ein Beispiel für einen Arbeitsablauf:

git checkout main # check out your main branch 
git pull # pull latest git files from the remote, for this branch 
git lfs pull # pull latest git lfs files from the remote, for this branch

Best Practices für die Verwendung von Git LFS

Auch wenn Git LFS eine großartige Lösung ist, kann sie dennoch eine Reihe von Problemen mit sich bringen und ist nicht als Universallösung gedacht. Achte auf die folgenden Best Practices, wenn du Git LFS verwendest, um es optimal zu nutzen:

  • Verwende Git LFS nur für große Binärdateien, nicht für Code oder kleine Textdateien.
  • Entferne regelmäßig überflüssige Dateien mit: git lfs prune
  • Vermeiden Sie das Verfolgen ganzer VerzeichnisseDas kann zu Leistungsproblemen und Überfüllung führen.
  • Stelle sicher, dass alle Mitwirkenden Git LFS installiert haben um fehlende Dateien zu vermeiden.

Wenn du diese allgemeinen Richtlinien befolgst, wird Git LFS ein großartiges Werkzeug für dich sein!

Häufige Probleme und wie man sie behebt

Da Git LFS eine Erweiterung von Git ist, bringt es eine Reihe von Problemen mit sich. Das gilt vor allem, weil es auf Remote-Repositories angewiesen ist, die ihre eigenen Probleme haben. Hier sind einige häufige Probleme, auf die du bei der Verwendung von Git LFS stoßen könntest, und ihre Abhilfen.

Git LFS Authentifizierungsprobleme

Es gibt zahlreiche Möglichkeiten, wie du mit Git LFS auf Authentifizierungsprobleme stoßen kannst. Um sicherzustellen, dass du die richtigen Anmeldedaten hast, überprüfe Folgendes:

  • Verwende die richtige SSH-Konfiguration mit git config lfs.url ssh://
  • Vergewissere dich, dass du Lese-/Schreibzugriff auf den übergeordneten Zweig hast, da Git LFS oft zum übergeordneten Zweig verfolgt
  • Versuche, einen sauberen Fetch/Klon aus dem entfernten Repository zu erstellen

Wenn du weiterhin Probleme hast und nicht der Administrator bist, wende dich an denjenigen, der das Projekt besitzt, um zu sehen, ob er dir bei den Rechten helfen kann.

Speicherbegrenzungen und Quoten für große Dateien

Dienste können Angebote für Git LFS-Speicher haben. Bei GitHub gibt es zum Beispiel ein 2GB-Limit für Free- und Pro-Nutzer und ein 5GB-Limit pro Datei für Enterprise Cloud-Nutzer. Achte darauf, dass du keine Dateien hochlädst, die größer sind als das Limit deines Dienstes, um Fehler zu vermeiden.

Migration bestehender Repositories auf Git LFS

Wenn ein Repository bereits große Dateien enthält, migriere sie mit:

git lfs migrate import --include="*.filetype"

Dadurch werden große Dateien rückwirkend durch LFS-Zeiger ersetzt. 

Fazit

Git LFS ist ein unverzichtbares Werkzeug, um große Dateien effizient zu verwalten und gleichzeitig Repositories performant und schlank zu halten. Durch den Einsatz von Git LFS können Entwickler ihre größeren Repository-Dateien richtig verwalten. Solange du dich an die Best Practices hältst, um den Lernpfad so wenig wie möglich aufzublähen, wird LFS eine große Hilfe für deine Dateiverfolgung sein. Wenn du mehr über Git erfahren möchtest, kannst du die folgenden Ressourcen nutzen:

Git LFS FAQs

Was passiert, wenn ich ein Repository mit Git LFS-Dateien klone?

Wenn du git clone mit neueren Versionen von Git ausführst, werden die Repository- und LFS-Zeiger automatisch geholt. Wenn du eine ältere Version von Git verwendest, musst du git lfs pull ausführen, um die großen Dateien herunterzuladen. Alternativ kannst du git lfs clone verwenden, um dies automatisch zu tun.

Wie kann ich überprüfen, welche Dateien von Git LFS verfolgt werden?

Führe git lfs track aus, um nachverfolgte Dateimuster zu sehen, und git lfs ls-files, um die tatsächlich mit LFS gespeicherten Dateien aufzulisten.

Was ist, wenn mir der Git-LFS-Speicher auf GitHub oder einem anderen Hosting-Dienst ausgeht?

Bei Diensten wie GitHub gibt es Speicherplatzbeschränkungen. Du kannst den Speicherplatz mit git lfs prune verwalten, mehr Speicherplatz kaufen oder eine alternative externe Speicherlösung verwenden.

Kann ich Git LFS nicht mehr verwenden, nachdem ich es aktiviert habe?

Ja, aber du musst deine Dateien mit git lfs migrate export --include="*.filetype" zurück zu Standard-Git migrieren, um das LFS-Tracking zu entfernen.

Themen

Top DataCamp Kurse

Kurs

Introduction to Git

2 hr
17.7K
Discover the fundamentals of Git for version control in your software and data projects.
Siehe DetailsRight Arrow
Kurs starten
Mehr anzeigenRight Arrow
Verwandt

Der Blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates hat im zweiten Quartal 2023 über 20.000 Stipendien an unsere gemeinnützigen Partner vergeben. Erfahre, wie fleißige benachteiligte Lernende diese Chancen in lebensverändernde berufliche Erfolge verwandelt haben.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

Der Blog

Die 20 besten Snowflake-Interview-Fragen für alle Niveaus

Bist du gerade auf der Suche nach einem Job, der Snowflake nutzt? Bereite dich mit diesen 20 besten Snowflake-Interview-Fragen vor, damit du den Job bekommst!
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

15 Min.

Der Blog

Die 50 besten AWS-Interview-Fragen und Antworten für 2025

Ein kompletter Leitfaden zur Erkundung der grundlegenden, mittleren und fortgeschrittenen AWS-Interviewfragen, zusammen mit Fragen, die auf realen Situationen basieren.
Zoumana Keita 's photo

Zoumana Keita

15 Min.

Der Blog

Lehrer/innen und Schüler/innen erhalten das Premium DataCamp kostenlos für ihre gesamte akademische Laufbahn

Keine Hacks, keine Tricks. Schüler/innen und Lehrer/innen, lest weiter, um zu erfahren, wie ihr die Datenerziehung, die euch zusteht, kostenlos bekommen könnt.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

4 Min.

Der Blog

Top 30 Generative KI Interview Fragen und Antworten für 2024

Dieser Blog bietet eine umfassende Sammlung von Fragen und Antworten zu generativen KI-Interviews, die von grundlegenden Konzepten bis hin zu fortgeschrittenen Themen reichen.
Hesam Sheikh Hassani's photo

Hesam Sheikh Hassani

15 Min.

Der Blog

2022-2023 DataCamp Classrooms Jahresbericht

Zu Beginn des neuen Schuljahres ist DataCamp Classrooms motivierter denn je, das Lernen mit Daten zu demokratisieren. In den letzten 12 Monaten sind über 7.650 neue Klassenzimmer hinzugekommen.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 Min.

Mehr anzeigenMehr anzeigen