Início·Comandos de terminal

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çãoSignificado
--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

Exemplos

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

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