Inicio·Comandos de terminal

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ónSignificado
--aggressiverepack harder; slow, occasionally worth it
--prune=<date>drop unreachable objects older than that
--prune=nowdrop them all, which also throws away reflog-only commits
--autodo nothing unless there is enough loose junk
--no-prunerepack but keep unreachable objects
-qno progress output

Ejemplos

git gc

packs loose objects and shrinks .git

git gc --auto

the cheap check git itself runs after some commands

git gc --prune=now --aggressive

smallest 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