git gc
git
Uso
git gc [--aggressive] [--prune=<date>]Empaqueta objetos sueltos y descarta los inalcanzables para reducir .git; --prune=now también tira los commits que sostenía el reflog, y con eso desaparece la red de seguridad para deshacer un reset.
Opciones habituales
| Opción | Significado |
|---|---|
| --aggressive | repack harder; slow, occasionally worth it |
| --prune=<date> | drop unreachable objects older than that |
| --prune=now | drop them all, which also throws away reflog-only commits |
| --auto | do nothing unless there is enough loose junk |
| --no-prune | repack but keep unreachable objects |
| -q | no progress output |
Ejemplos
git gcpacks loose objects and shrinks .git
git gc --autothe cheap check git itself runs after some commands
git gc --prune=now --aggressivesmallest result, and no way back to lost commits
Lo confuso es que deshacer tiene varias formas: mover a dónde apunta una rama no es lo mismo que añadir un commit que la revierte.
Cómo leerlo
- Los corchetes [ ] marcan una parte que puedes omitir.
- Los puntos suspensivos … indican que puedes poner varios.
- Las opciones distinguen mayúsculas: en algunos comandos -r y -R no hacen lo mismo.
Preguntas
Q. ¿Qué hace git gc?
Empaqueta objetos sueltos y descarta los inalcanzables para reducir .git; --prune=now también tira los commits que sostenía el reflog, y con eso desaparece la red de seguridad para deshacer un reset.
Q. ¿Cómo se escribe?
git gc [--aggressive] [--prune=<date>] — los corchetes marcan lo que puedes omitir.
Q. ¿Cuántas opciones vale la pena saber?
Aquí van 6; la lista completa está en man git. Este comando está en git.
Comandos relacionados
página man: man git-gc