Da Anonimo (non verificato) , 29 Aprile 2026

Cosa fa gc

git gc esegue manutenzione: ripacka oggetti loose, fa prune di quelli irraggiungibili oltre la finestra di scadenza, impacchetta i ref loose in packed-refs, fa scadere i reflog, e scrive commit-graph e MIDX dove configurato.

Auto-trigger

[gc]
auto = 6700
autoPackLimit = 50
autoDetach = true
pruneExpire = 2.weeks.ago
reflogExpire = 90.days
reflogExpireUnreachable = 30.days

Invocazione manuale

git gc
git gc --auto
git gc --aggressive
git gc --prune=now

Prune in sicurezza

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

pack-refs

git pack-refs --all
git for-each-ref | wc -l
ls .git/refs/heads | wc -l

Pianificazione in background

git maintenance start
git maintenance run --task=gc
git maintenance run --task=loose-objects
git maintenance run --task=pack-refs

Aggressive vs default

--aggressive usa profondita 250, finestra 250.

Errori comuni

Disabilitare auto-gc per "risparmiare CPU" e ritrovarsi con milioni di oggetti loose.