Da Anonimo (non verificato) , 29 Aprile 2026

Sinossi

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

Descrizione

Il comando git maintenance, introdotto in Git 2.29, sostituisce ed estende git gc --auto con task di manutenzione schedulati e a grana fine: prefetch, generazione di commit-graph, packing di oggetti loose, repack incrementale e pack-refs. Eseguire git maintenance start registra una schedule ricorrente via cron, launchd, systemd o Task Scheduler a seconda della piattaforma.

Per server-side o cloni di lunga durata di repository grandi, abilitare maintenance migliora drasticamente la responsività quotidiana. Operazioni come git status e git log diventano più veloci quando i dati commit-graph e reachable-bitmap sono mantenuti freschi.

Nell'uso quotidiano, git maintenance si integra con alias e CI.

Capire il modello dati di Git aiuta a prevedere i risultati.

Opzioni comuni

Sottocomando / OpzioneDescrizione
startRegistra una schedule in background.
stopAnnulla la registrazione della schedule.
runEsegue task immediatamente.
--task=<task>Esegue solo questo task (commit-graph, prefetch, ecc.).
register / unregisterAggiunge o rimuove repo dal set di maintenance.
--schedule=<freq>Frequenza: hourly, daily, weekly.

Esempi

git maintenance start
# Configura maintenance in background per questo repo

git maintenance run --task=commit-graph
# Aggiorna il commit-graph on demand

git maintenance run --task=prefetch
# Scarica oggetti upstream senza aggiornare i ref

git maintenance unregister
# Ferma la maintenance schedulata per questo repo

Errori comuni

Dimenticare che start registra un task schedulato a livello di sistema. Su macchine condivise, questo potrebbe non essere ciò che vuoi; usa invece register in un file di config. Disabilitare il gc automatico ma non abilitare maintenance lascia il repo crescere senza controllo.

Comandi correlati

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