Removendo arquivos não repositórios com git?

97

Estou escrevendo o código do Autotools e no processo de desenvolvimento, toneladas de arquivos são gerados.

Existe alguma maneira de dizer ao git para remover todos os arquivos de um diretório que não fazem parte do repositório?

Scott
fonte

Respostas:

178

Você pode usar o git-clean . Este comando removerá arquivos / diretórios não rastreados. Por padrão, ele imprimirá apenas o que teria removido, sem realmente removê-los.

Dado o -fsinalizador para remover os arquivos e o -dsinalizador para remover diretórios vazios também:

git clean -df

Também removendo arquivos ignorados:

git clean -dfx
Lily Ballard
fonte
36
Jogue um -xe será tão bom quanto um repositório recém-clonado.
Dustin
2
Eu pensei que ele quis dizer remover arquivos do git, não do sistema de arquivos real, opa!
Andrew Marshall
O comando git cleanpor si só removerá, na verdade, todos os arquivos não rastreados - exceto quando a variável de configuração do Git clean.requireForce for definida como true. Se for definido como falso, então -ff é necessário para limpar diretórios
Adam
6
As versões recentes do git apresentam erros sem nenhum parâmetro; O padrão de requireForce é true, então para fazer um dryrun você precisa de -n
Seb
1
acompanhando @Dustin: git clean -ixvai mostrar o que vai limpar e dar um menu de opções. Meu favorito.
wcochran de