Por Anónimo (no verificado) , 29 Abril 2026

Qué hace gc

git gc realiza mantenimiento: repacka objetos sueltos, poda los no alcanzables más allá de la ventana de expiración, empaqueta refs sueltas en packed-refs, expira reflogs, y escribe commit-graph y MIDX donde está configurado.

Auto-trigger

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

Invocación manual

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

Podar de forma segura

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

Programación en 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 profundidad 250, ventana 250 — mucho más alto que los defaults (50/10). Reserva para ejecuciones offline ocasionales.

Errores comunes

Deshabilitar auto-gc para "ahorrar CPU" y terminar con millones de objetos sueltos.