Git Large File Storage (LFS) - Dies ist eine Erweiterung des Git-Versionskontrollsystems, mit dem Sie große Dateien wie Bilder, Videos oder Audio effizient verwalten können. Manchmal ist es jedoch notwendig, Git LFS aus verschiedenen Gründen aus dem Projekt zu entfernen - Sie müssen möglicherweise keine großen Dateien mehr verwalten oder Sie haben zu einer anderen Lösung gewechselt, um sie zu verwalten.
In diesem einzigartigen Tutorial erfahren Sie, wie Sie Git LFS aus Ihrem Projekt entfernen können. Wir decken alle Schritte ab, von der Deaktivierung von LFS bis zum Entfernen der Erweiterung selbst. Wenn Sie diese Anweisungen befolgen, können Sie Git LFS einfach und sicher loswerden, ohne Ihr Versionskontrollsystem zu beschädigen.
Wir empfehlen Ihnen, jeden Schritt sorgfältig zu lesen und zu verstehen, bevor Sie ihn ausführen, um Datenverluste und Fehler in Ihrem Projekt zu vermeiden.
Was ist Git LFS
Wenn dem Repository große Dateien hinzugefügt werden, verarbeitet Git sie standardmäßig ineffizient, indem die Größe der übertragenen Daten erhöht und die Operationen mit dem Repository verlangsamt werden. Mit Git LFS können Sie diese Einschränkung umgehen, indem Sie große Dateien an einem separaten Speicherort (z. B. in einem Cloud-Speicher) speichern und nur ihre Metadaten im Repository speichern.
Git LFS lädt Dateien automatisch herunter und aktualisiert sie bei Bedarf automatisch, wodurch die Arbeit mit großen Dateien effizienter und entwicklerfreundlicher wird. Dies ist besonders nützlich, wenn Sie mit Projekten arbeiten, die Dateien wie Bilder, Videos oder Dokumentationen enthalten, die viel Platz in Anspruch nehmen und die Zeit für Repository-Operationen verlängern können.
Beispiel für die Verwendung von Git LFS:
$ git lfs track "*.psd"$ git add file.psd$ git commit -m "Add large PSD file"$ git push
In diesem Beispiel richten wir Git LFS ein, um Dateien mit einer Erweiterung zu verfolgen .psd und fügen Sie eine solche Datei zum Repository hinzu. Bei einer Push-Operation lädt Git LFS die Datei in einen separaten Speicher hoch und fügt ihre Metadaten dem Repository hinzu.
Gründe für das Entfernen von git lfs
In einigen Fällen kann es notwendig sein, git lfs aus folgenden Gründen aus Ihrem Projekt zu entfernen:
Begrenzter Speicherplatz:
Git LFS kann aufgrund der großen Dateien, die im Versionskontrollsystem gespeichert sind, eine beträchtliche Menge an Speicherplatz beanspruchen. Wenn Ihr Server oder Hosting-Provider Grenzen für die Menge der gespeicherten Daten aufweist, kann das Löschen von Git LFS Ihnen helfen, das Projekt innerhalb des zulässigen Speicherplatzes zu halten.
Leistungsprobleme:
Git LFS kann Projektvorgänge verlangsamen, insbesondere wenn Sie mit vielen Dateien arbeiten oder langsame Netzwerkverbindungen verwenden. In solchen Fällen kann das Entfernen von Git LFS dazu beitragen, die Leistung und Geschwindigkeit des Projekts zu verbessern.
Projektanforderungen ändern:
Manchmal können sich die Projektanforderungen ändern und es ist nicht mehr notwendig, große Dateien mit Git LFS zu speichern. Wenn große Dateien nicht mehr Bestandteil Ihres Projekts sind, kann das Entfernen von Git LFS dazu beitragen, das Projektmanagement zu vereinfachen und die Komplexität und den Umfang der gespeicherten Daten zu reduzieren.
Unabhängig von den Gründen für das Entfernen von Git LFS ist es wichtig, den entsprechenden Prozess zu befolgen, um Datenverlust zu vermeiden und die Integrität des Änderungsverlaufs in Ihren Projekten zu erhalten.
Schritte zum Entfernen von git lfs
Sie können git lfs aus dem Repository entfernen, indem Sie die folgenden Schritte ausführen:
1. Überprüfen Sie, ob git lfs im Repository vorhanden ist.
Öffnen Sie dazu ein Terminal und navigieren Sie zum lokalen Verzeichnis Ihres Repositorys. Führen Sie dann den Befehl aus:
git lfs install
2. Überprüfen Sie die Liste der von git lfs verfolgten Dateien.
Dies zeigt eine Liste der Dateien an, die für die Verfolgung mit git lfs konfiguriert wurden.
3. Deaktivieren Sie git lfs, um Dateien zu verfolgen.
git lfs untrack "Dateipfad"
Geben Sie anstelle von "Dateipfad" den Pfad zu der Datei an, die Sie mit git lfs nicht mehr verfolgen möchten.
4. Entfernen Sie die git lfs-Attribute für die Datei.
git rm --cached "Dateipfad"
Dadurch werden die git lfs-Attribute für die angegebene Datei entfernt. Ersetzen Sie erneut "Dateipfad" durch den Pfad zu der Datei, die Sie ändern möchten.
5. Schließen Sie git lfs aus dem Repository aus.
Öffnen.gitattributes die Datei im Stammverzeichnis Ihres Repositorys und entfernen Sie die Zeilen, die mit git lfs verknüpft sind. Speichern Sie die Änderungen.
6. Lösche die überschriebenen Git lfs-Commits.
Wenn Ihre vorherigen Commits mit git lfs überschrieben wurden, müssen Sie diese Commits löschen und die Änderungen an das Remote-Repository erzwingen. Führen Sie zuerst den Befehl aus:
git reflog expire --expire=now --all
Führen Sie dann den Befehl aus:
git gc --prune=now
Nachdem Sie alle diese Schritte ausgeführt haben, wird git lfs vollständig aus Ihrem Repository entfernt.
Schritt 1: Überprüfen des Git lfs-Status
Bevor Sie mit der Deinstallation von git lfs beginnen, müssen Sie sicherstellen, dass der Repository-Zweig Git lfs-Objekte enthält, und deren Speicherort bestimmen.
Führen Sie den Befehl aus, um den Status von git lfs zu überprüfen:
git lfs status
Git LFS is enabled for this repository - das bedeutet, dass git lfs für dieses Repository aktiviert ist und git lfs-Objekte gespeichert sind. Fahren Sie mit den folgenden Schritten fort, um git lfs zu entfernen.
No such file or directory - das bedeutet, dass git lfs nicht auf Ihrem System installiert ist. Installieren Sie git lfs, bevor Sie fortfahren.
Project is not a git repository - dies bedeutet, dass das aktuelle Verzeichnis kein Git-Repository ist. Stellen Sie sicher, dass Sie sich im Stammverzeichnis des Repositorys befinden, und wiederholen Sie den Befehl.
Git LFS is not enabled for this repository - dies bedeutet, dass git lfs für dieses Repository nicht aktiviert ist. In diesem Fall sind keine zusätzlichen Schritte erforderlich, git lfs wurde bereits entfernt.
Sobald Sie den Status von git lfs erhalten haben, können Sie mit dem Löschen von git lfs gemäß den übrigen Schritten fortfahren.
Schritt 2: Entfernen von git lfs aus dem Repository
Gehen Sie folgendermaßen vor, um git lfs aus dem Repository zu entfernen:
- Öffnen Sie ein Terminal oder eine Eingabeaufforderung und navigieren Sie zum Stammordner Ihres Repositorys.
- Geben Sie den folgenden Befehl ein: git lfs uninstall . Dadurch wird git lfs für das aktuelle Repository deaktiviert.
- Wenn Sie alle Dateien löschen möchten, die von git lfs verfolgt wurden, führen Sie den Befehl: git lfs untrack aus . Dadurch werden alle Dateien gelöscht, auf die Sie verweisen.gitattributes.
- Wenn Sie alle git lfs-Objekte aus dem Commit-Verlauf des Repositorys entfernen möchten, führen Sie den Befehl aus: git lfs migrate export --everything --include="*" . Dadurch werden alle Git-lfs-Objekte in normale Git-Objekte übersetzt, aber größere Dateien können länger dauern.
- Bereinigen Sie den Git lfs-Cache mit dem Befehl: git lfs clean .
Nachdem Sie diese Schritte ausgeführt haben, wird Ihr Repository vollständig von git lfs gelöscht.
Schritt 3: Entfernen von git lfs aus dem Commit-Verlauf
Nachdem Sie git lfs erfolgreich aus der aktuellen Version Ihres Repositorys entfernt haben, müssen Sie auch alle Spuren entfernen, die git lfs im Commit-Verlauf hinterlassen hat.
Dazu können Sie den Befehl git filter-branch verwenden. Es ermöglicht Ihnen, den Verlauf von Commits zu ändern, indem Sie komplexe Filter anwenden.
Bevor Sie beginnen, stellen Sie sicher, dass Sie in Ihrem Repository-Verzeichnis arbeiten und dass Sie die neueste Version von Git installiert haben.
Gehen Sie folgendermaßen vor, um git lfs aus dem Commit-Verlauf zu entfernen:
- Erstellen Sie einen neuen Zweig, um die ursprüngliche Commit-Geschichte beizubehalten:
git branch backup - Umschaltet auf einen neuen Zweig:
git checkout backup - Filter anwenden so entfernen Sie git lfs:
git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch ' - Überschreiben Sie den Remote-Remote-Server wenn Sie ein Remote-Repository haben:
git push origin --force --all - Entfernen Sie den temporären Zweig, wenn Sie es nicht mehr brauchen:
git branch -D backup
Sie entfernen git lfs erfolgreich aus dem Commit-Verlauf Ihres Repositorys. Jetzt sind alle Ihre Commits von git lfs sauber.