git gc
Limpia y optimiza el repositorio
El comando 'git gc' (garbage collection) empaqueta los objetos sueltos en packfiles comprimidos, elimina los objetos a los que ya nada se refiere (tras su periodo de gracia) y ordena referencias y reflogs. Git ejecuta automáticamente una versión ligera; rara vez hace falta a mano. Solo cambia el almacenamiento — nunca tus commits, ramas o archivos.
Sinopsis
git gc [--aggressive] [--auto] [--quiet] [--prune=<date> | --no-prune]Ejemplos
Ordenar
git gcEmpaquetar y limpiar.
Eliminar ya los objetos inalcanzables
git gc --prune=nowTambién borra al instante los commits perdidos (cuidado).
Ejemplos de flujos de trabajo
git reflog expire --expire=now --allOlvidar posiciones antiguas
git gc --prune=now --aggressiveBorrar y reempaquetar
Solución de problemas
Mensaje "Auto packing the repository…"
Causa: Git ejecutó gc automáticamente
Nada que hacer; mantiene el repositorio rápido
Consejos y trampas
Buenas prácticas
- ✓Deja que Git lo ejecute solo, o programa git maintenance.
Errores comunes
- ✗Ejecutar git gc --prune=now esperando recuperar un commit perdido — lo borra.
Preguntas frecuentes
Solo objetos inalcanzables más antiguos que el periodo de gracia (2 semanas por defecto); los commits alcanzables nunca se tocan.