git clean

Snapshots básicos

Remove arquivos não rastreados do diretório de trabalho


O comando 'git clean' exclui arquivos não rastreados — arquivos que o Git nunca guardou, como logs, saídas de build ou experimentos. Como o Git não tem cópia deles, arquivos excluídos não podem ser recuperados. Por isso git clean se recusa a rodar sem -f, e git clean -n mostra antes o que seria excluído. Arquivos do .gitignore são mantidos, a menos que você adicione -x.

Sinopse

git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] [<pathspec>...]
[ ] opcional| ou<arg> valor a substituir... repetível--flag opção

Opções

Clique em uma opção para expandir

Iniciante (3)

Não exclui nada, só mostra o que seria excluído.

RecomendadoSempre pré-visualize antes de excluir de vez

Exemplo

git clean -n

Exclui de fato os arquivos. Obrigatório, a menos que clean.requireForce seja false.

Quando necessárioObrigatório para excluir; os arquivos se perdem de vez

Exemplo

git clean -f

Exclui também pastas não rastreadas, não só arquivos.

Quando necessárioNecessário quando as sobras são pastas inteiras

Exemplo

git clean -fd

Intermediário (1)

Exclui também os arquivos que o .gitignore normalmente protege.

Não recomendadoTambém exclui arquivos ignorados como .env ou configurações locais

Exemplo

git clean -f -x

Escolhendo a opção certa

O que cada comando remove

Rastreado ou não rastreado

ComandoArquivos não rastreadosArquivos ignoradosEdições em arquivos rastreados
git clean -fApagadoMantidoMantido
git clean -f -xApagadoApagadoMantido
git restore .MantidoMantidoDescartado
git stash -uGuardado no stashMantidoGuardado no stash

Exemplos

Prévia

git clean -n

Lista os arquivos não rastreados que seriam excluídos.


Excluir arquivos não rastreados

git clean -f

Exclui-os de vez.


Pastas também

git clean -fd

Também exclui pastas não rastreadas.

Exemplos de fluxos de trabalho

1
git status -s

Ver os arquivos não rastreados (??)

2
git clean -n

Pré-visualizar a exclusão

3
git clean -f

Excluí-los

Solução de problemas

fatal: clean.requireForce is true and -f not given

Causa: git clean se recusa a apagar sem -f

Execute git clean -n para pré-visualizar e depois git clean -f

Uma pasta não rastreada não foi excluída

Causa: Pastas precisam de -d

Use git clean -fd

Excluí um arquivo de que precisava

Causa: Arquivos não rastreados não têm cópia no Git

O Git não pode restaurá-lo; verifique seu editor ou backups. Da próxima vez use git stash -u

Dicas e armadilhas

Boas práticas

  • ✓Sempre execute git clean -n antes de git clean -f.
  • ✓Use git stash -u se talvez precisar dos arquivos depois.
  • ✓Reserve -x para pastas de build que você pode gerar de novo.

Erros comuns

  • ✗Executar git clean -f sem -n antes e perder um arquivo de que ainda precisava.
  • ✗Adicionar -x por hábito e excluir arquivos ignorados como .env.
  • ✗Esperar que git clean desfaça edições em arquivos rastreados — para isso use git restore.

Perguntas frequentes

A:

Não. Os arquivos nunca foram guardados no Git.

A:

Não. Ele só exclui arquivos não rastreados (e com -x, os ignorados).

A:

Sim: git clean -i deixa você escolher os arquivos um a um.