git gc
git
Uso
git gc [--aggressive] [--prune=<date>]Empacota objetos soltos e descarta os inalcançáveis para encolher o .git; --prune=now também joga fora os commits que o reflog segurava, tirando a rede de segurança para desfazer um reset.
Opções comuns
| Opção | 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 |
Exemplos
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
O confuso é que desfazer tem várias formas: mover para onde um branch aponta não é o mesmo que criar um commit que reverte.
Como ler
- Os colchetes [ ] marcam uma parte que você pode omitir.
- As reticências … indicam que você pode listar vários.
- As opções diferenciam maiúsculas: em alguns comandos -r e -R fazem coisas diferentes.
Perguntas
Q. O que git gc faz?
Empacota objetos soltos e descarta os inalcançáveis para encolher o .git; --prune=now também joga fora os commits que o reflog segurava, tirando a rede de segurança para desfazer um reset.
Q. Como se digita?
git gc [--aggressive] [--prune=<date>] — os colchetes marcam o que você pode omitir.
Q. Quantas opções vale a pena saber?
Aqui estão 6; a lista completa está em man git. Este comando fica em git.
Comandos relacionados
página man: man git-gc