git gc

Administração

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]
[ ] opcional| ou<arg> valor a substituir... repetível--flag opção

Exemplos

Arrumar

git gc

Empacotar e limpar.


Remover agora objetos inalcançáveis

git gc --prune=now

Também apaga na hora os commits perdidos (cuidado).

Exemplos de fluxos de trabalho

1
git reflog expire --expire=now --all

Esquecer posições antigas

2
git gc --prune=now --aggressive

Apagar 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

A:

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.