git gc
Limpa e otimiza o repositório
O comando 'git gc' (garbage collection) empacota objetos soltos em packfiles comprimidos, remove objetos que nada mais referencia (após o período de carência) e arruma referências e reflogs. O Git roda automaticamente uma versão leve; raramente é preciso rodá-lo à mão. Só muda o armazenamento — nunca seus commits, branches ou arquivos.
Sinopse
git gc [--aggressive] [--auto] [--quiet] [--prune=<date> | --no-prune]Exemplos
Arrumar
git gcEmpacotar e limpar.
Remover agora objetos inalcançáveis
git gc --prune=nowTambém apaga na hora os commits perdidos (cuidado).
Exemplos de fluxos de trabalho
git reflog expire --expire=now --allEsquecer posições antigas
git gc --prune=now --aggressiveApagar e reempacotar
Solução de problemas
Mensagem "Auto packing the repository…"
Causa: O Git rodou o gc automaticamente
Nada a fazer; isso mantém o repositório rápido
Dicas e armadilhas
Boas práticas
- ✓Deixe o Git rodá-lo automaticamente, ou agende git maintenance.
Erros comuns
- ✗Rodar git gc --prune=now esperando recuperar um commit perdido — ele o apaga.
Perguntas frequentes
Só objetos inalcançáveis mais antigos que o período de carência (2 semanas por padrão); commits alcançáveis nunca são tocados.