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?

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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.