Repository-Wartung und Aufräumen
Lernen Sie Befehle wie `git gc` und `git prune` kennen, um Ihr lokales Git-Repository aufzuräumen und zu optimieren.
Repository-Wartung und Aufräumen ist eine kostenlose Git & GitHub Professional Workflow-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Git & GitHub Professional Workflow-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Git & GitHub Professional Workflow-Kurs umfasst insgesamt 4 Lektionen.
Willkommen bei der Git-Wartung
Mit der Zeit können sich in Ihren lokalen Git-Repositorys unnötige Dateien ansammeln, wodurch sie weniger effizient werden. Stellen Sie es sich wie ein unaufgeräumtes Zimmer vor!
In dieser Lektion lernen Sie, wie Sie Ihre Git-Repositorys mit leistungsstarken Befehlen wie git gc und git prune bereinigen und optimieren. So bleiben Ihre Projekte leistungsfähig.
Gits Objektspeicher erklärt
Sehen wir uns zunächst an, wie Git Daten speichert. Git speichert den Verlauf Ihres Projekts als eine Reihe von „Objekten“:
- Blobs: Dateiinhalte
- Trees: Verzeichnisse und deren Inhalte
- Commits: Momentaufnahmen Ihres Projekts zu einem bestimmten Zeitpunkt
- Tags: Zeiger auf bestimmte Commits
Diese Objekte können als „lose Objekte“ gespeichert oder zur Effizienzsteigerung in „Packfiles“ komprimiert werden.
`git gc` einführen (Garbage Collection)
Der Befehl git gc steht für „garbage collect“. Er ist Gits integriertes Werkzeug zum Bereinigen und Optimieren Ihres Repositorys.
Zu seinen Hauptaufgaben gehören:
- Lose Objekte packen: Einzelne Objekte in einzelne Packfiles komprimieren.
- Nicht erreichbare Objekte entfernen: Objekte löschen, auf die nach einem bestimmten Zeitraum kein Commit, Branch oder Tag mehr verweist.
- Alte Packfiles entfernen: Veraltete komprimierte Objektdateien löschen.
Durch diesen Vorgang wird Ihr Repository kleiner und schneller.
`git gc` ausführen (allgemeine Verwendung)
Sie können git gc jederzeit manuell ausführen. Git führt den Befehl auch automatisch im Hintergrund aus, wenn Sie bestimmte Vorgänge wie Push oder Fetch durchführen.
Die Ausführung ist im Allgemeinen sicher. Es empfiehlt sich jedoch, sicherzustellen, dass Sie keine nicht committeten Arbeiten haben, die Sie vor einer umfassenden Bereinigung möglicherweise noch wiederherstellen müssen.
Versuchen Sie, den Befehl in Ihrem Terminal auszuführen:
git gcDie Ausgabe von `git gc` verstehen
Wenn Sie git gc ausführen, sehen Sie eine ähnliche Ausgabe:
Counting objects: 1234, done.
Compressing objects: 100% (987/987), done.
Writing objects: 100% (1234/1234), done.
Total 1234 (delta 567), reused 0 (delta 0)
Removing duplicate objects: 100% (256/256), done.
Pruning objects: 100% (123/123), done.Diese Ausgabe zeigt, dass Git Objekte packt, neue Packfiles schreibt und alte, nicht erreichbare Objekte entfernt. Die Zahlen hängen vom Zustand Ihres Repositorys ab.
Fokus auf `git prune`
Während git gc viele Bereinigungsaufgaben übernimmt, kümmert sich git prune speziell um das Entfernen „verwaister“ oder „nicht erreichbarer“ Objekte.
- Verwaiste Objekte: Das sind Objekte, die in Ihrem Repository vorhanden sind, aber von keinem Commit, Branch oder Tag mehr referenziert werden und außerdem nicht Teil einer Packdatei sind.
- Nicht erreichbare Objekte: Ein ähnlicher, jedoch umfassenderer Begriff. Sie können aus verschiedenen Gründen entstehen, etwa nach einem Rebase oder Reset, bei dem die Historie neu geschrieben wird.
git prune löscht diese Objekte, wenn sie älter als die standardmäßige Aufbewahrungsfrist sind (normalerweise 2 Wochen).
`git prune` direkt ausführen
Normalerweise müssen Sie git prune nicht direkt ausführen, da git gc diesen Befehl aufruft. Sie können ihn jedoch für eine gezieltere Bereinigung verwenden.
Um anzuzeigen, was git prune tun würde, ohne tatsächlich etwas zu löschen, verwenden Sie die Option --dry-run:
git prune --dry-runBereinigen mit Ablaufzeit
Standardmäßig entfernt git prune (und der Bereinigungsschritt von git gc) nur Objekte, die älter als zwei Wochen sind. Sie können dies mit der Option --expire überschreiben.
Das ist nützlich, wenn Sie verwaiste Objekte, die erst vor Kurzem erstellt wurden, aggressiv bereinigen möchten – beispielsweise nach einem experimentellen Rebase, den Sie sicher nicht rückgängig machen müssen.
So bereinigen Sie beispielsweise Objekte, die älter als 1 Tag sind:
git prune --expire=1.dayUnterscheidung von `git reflog expire`
Es ist wichtig, git prune nicht mit git reflog expire zu verwechseln. Beide dienen zwar der Bereinigung, haben aber unterschiedliche Aufgaben:
git prune: Löscht tatsächliche Git-Objekte (Blobs, Trees, Commits) aus der Objektdatenbank.git reflog expire: Bereinigt Einträge in Ihrem reflog (einer lokalen Historie darüber, wo sich Ihr HEAD befunden hat). Dadurch sind bestimmte Commits schwerer zu finden, die Objekte selbst werden jedoch nicht gelöscht.
Seien Sie stets vorsichtig, wenn Sie die Historie ändern oder Bereinigungsbefehle ausführen!
Überprüfung der Wartung
Welche der folgenden Aussagen beschreibt die Hauptaufgabe von git gc am besten?
Zusammenfassung und nächste Schritte
Herzlichen Glückwunsch! Sie haben gelernt, wie Sie Ihre Git-Repositorys übersichtlich und effizient halten.
git gc: Der All-in-one-Befehl für Garbage Collection, das Packen von Objekten und das Bereinigen.git prune: Zielt speziell auf nicht erreichbare und verwaiste Objekte ab, die älter als eine festgelegte Aufbewahrungsfrist sind, und entfernt sie.
Regelmäßige Wartung trägt dazu bei, dass Ihr Git-Workflow reibungslos bleibt und Ihre Repositorys nicht übermäßig viel Speicherplatz belegen. Weiter so!
Häufig gestellte Fragen
Ist die Lektion „Repository-Wartung und Aufräumen“ kostenlos?
Ja — der vollständige Text von „Repository-Wartung und Aufräumen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Git & GitHub Professional Workflow-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Git & GitHub Professional Workflow-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Repository-Wartung und Aufräumen“?
Lernen Sie Befehle wie `git gc` und `git prune` kennen, um Ihr lokales Git-Repository aufzuräumen und zu optimieren. Du übst Git & GitHub Professional Workflow mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Git & GitHub Professional Workflow zu starten?
Keine Vorkenntnisse erforderlich. Git & GitHub Professional Workflow auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Repository-Wartung und Aufräumen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Git & GitHub Professional Workflow-Lektion Code schreiben und ausführen?
Ja. Jede Git & GitHub Professional Workflow-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Git Reflog und Verlauf wiederherstellen
- Git Bisect zum Debuggen
- Repository-Wartung und Aufräumen
- Historie mit git filter-repo umschreiben