Von Gast (nicht überprüft) , 29 April 2026

Übersicht

git maintenance start
git maintenance run [--task=<task>]
git maintenance stop

Beschreibung

Der git maintenance-Befehl, eingeführt in Git 2.29, ersetzt und erweitert git gc --auto mit geplanten, feingranularen Wartungsaufgaben: Prefetch, Commit-Graph-Erzeugung, Lose-Objekt-Packing, inkrementelles Repack und pack-refs. Das Ausführen von git maintenance start registriert einen wiederkehrenden Zeitplan via cron, launchd, systemd oder Task Scheduler je nach Plattform.

Für serverseitige oder langlebige Klone großer Repositories verbessert das Aktivieren von Maintenance die tägliche Reaktionsfähigkeit dramatisch. Operationen wie git status und git log werden schneller, da die Commit-Graph- und Reachable-Bitmap-Daten aktuell gehalten werden.

Im täglichen Einsatz integriert sich git maintenance eng mit Shell-Aliasen, Editor-Plugins und Continuous Integration. Power-User fügen oft Aliase hinzu, die Flags kombinieren, die sie immer übergeben, oder wickeln den Befehl in Skripte, die Teamkonventionen durchsetzen. Die Ausgabeformatierung kann über Git-Config angepasst werden — Pretty-Formate, Farbschemata und Pager-Verhalten sind alle einstellbar. Wenn etwas schiefgeht, ist der erste Diagnoseschritt üblicherweise, den Befehl erneut mit GIT_TRACE=1 in der Umgebung auszuführen, was die zugrunde liegenden Plumbing-Aufrufe offenlegt. Für ungewöhnliche Situationen öffnet die --help-Ausgabe (git maintenance --help) die vollständige Manpage mit Details zu jeder Option, einschließlich solcher, die in alltäglichen Workflows selten verwendet werden, aber für Debugging oder Skripting im großen Maßstab essentiell sind.

Zu verstehen, wie git maintenance mit dem Rest von Gits Datenmodell interagiert — der Objektdatenbank, dem Index, Refs und dem Working Tree — zahlt sich aus. Jeder Befehl operiert auf einer Teilmenge dieser Stücke, und zu wissen, welche er berührt, hilft Ergebnisse vorherzusagen und sich von Fehlern zu erholen. Das Lesen der offiziellen Git-Dokumentation neben praktischer Übung in einem Wegwerf-Repository ist der schnellste Weg, die Nuancen zu verinnerlichen. Die meisten Produktionsprobleme mit Git rühren von einer von drei Ursachen: überraschendem Standardverhalten, partiellen Netzwerkoperationen oder dem Umschreiben bereits geteilter Historie. Ein funktionierendes mentales Modell der Nebenwirkungen von git maintenance hilft, alle drei zu vermeiden.

Häufige Optionen

Unterbefehl / OptionBeschreibung
startRegistriert einen Hintergrund-Zeitplan.
stopHebt den Zeitplan auf.
runFührt Aufgaben sofort aus.
--task=<task>Führt nur diese Aufgabe aus (commit-graph, prefetch usw.).
register / unregisterFügt Repo zum Maintenance-Set hinzu oder entfernt es.
--schedule=<freq>Frequenz: hourly, daily, weekly.

Beispiele

git maintenance start
    # Hintergrund-Maintenance für dieses Repo einrichten

    git maintenance run --task=commit-graph
    # Den commit-graph auf Anforderung aktualisieren

    git maintenance run --task=prefetch
    # Upstream-Objekte fetchen, ohne Refs zu aktualisieren

    git maintenance unregister
    # Geplante Maintenance für dieses Repo stoppen

Häufige Fehler

Vergessen, dass start eine systemweite geplante Aufgabe registriert. Auf gemeinsamen Maschinen ist das vielleicht nicht erwünscht; verwenden Sie stattdessen register in einer Konfigurationsdatei. Auto-gc zu deaktivieren, ohne Maintenance zu aktivieren, lässt das Repo ungezügelt wachsen.

Verwandte Befehle

git gc, git commit-graph, git fetch --prefetch, git repack