Git Limpo: Remova Arquivos Não Rastreados e Mantenha os Repositórios Organizados

Ao trabalhar em um repositório Git, é comum acumular arquivos e diretórios não rastreados que não fazem parte do sistema de controle de versão do repositório. Estes podem incluir arquivos temporários, artefatos de compilação ou outros arquivos criados localmente que não são commitados. Com o tempo, esses arquivos podem poluir o diretório de trabalho, tornando mais difícil manter um ambiente de trabalho limpo e organizado.

Para resolver esse problema, o Git fornece o comando git clean, que remove arquivos e diretórios não rastreados. Neste guia, vou mostrar a você como usar com segurança o git clean, suas diferentes opções e as melhores práticas para evitar exclusão acidental de arquivos, mantendo seu repositório Git organizado. Para aprendizado adicional, recomendo fazer nossos cursos Foundations of Git e Introduction to GitHub Concepts para aprender sobre controle de versão e a diferença entre Git e GitHub.

Entendendo o git clean

O comando git clean é uma ferramenta útil no Git que remove arquivos não rastreados do diretório de trabalho. O comando git clean é útil quando você precisa redefinir seu diretório de trabalho para um estado prístino, como antes de mudar de branches ou após executar processos de compilação que geram arquivos temporários. No entanto, o comando git clean deve ser usado com cautela, pois ele exclui permanentemente arquivos e diretórios não rastreados sem movê-los para a lixeira ou pasta de reciclagem.

Ao contrário do git reset ou git checkout, que modificam arquivos rastreados, o git clean lida estritamente com arquivos e diretórios que não estão sob controle de versão. Isso inclui:

  • Arquivos temporários criados por compilações

  • Arquivos de log ou dados em cache

  • Arquivos listados no .gitignore (se especificados explicitamente com -x)

O comando git clean é útil para manter um diretório de trabalho organizado, complementando outros comandos do Git como git reset e git checkout, que gerenciam alterações em arquivos rastreados.

Eu acho o Guia de Referência Rápida do Git Completo uma ferramenta útil para comandos Git comuns.

Usos Comuns para git clean

O comando git clean é uma ferramenta útil para manter um diretório de trabalho limpo. Abaixo estão alguns casos de uso comuns onde o git clean pode remover com segurança arquivos e diretórios desnecessários.

Removendo arquivos não rastreados

Ao trabalhar em um repositório Git, arquivos não rastreados podem se acumular ao longo do tempo. As opções a seguir ajudam a removê-los:

  • git clean -f: Força a remoção de arquivos não rastreados.

  • git clean -fd: Remove arquivos não rastreados e diretórios não rastreados.

  • git clean -fx: Remove arquivos não rastreados e arquivos ignorados, como os listados no .gitignore.

No entanto, você deve ter cuidado ao usar a opção -fx, pois ela também remove arquivos ignorados. Sempre verifique usando uma execução de teste (git clean -n) antes de executar o comando.

Modo interativo

O comando git clean -i ativa um modo interativo, permitindo que os usuários removam seletivamente arquivos não rastreados. Esse modo é útil quando você deseja mais controle sobre quais arquivos ou diretórios são excluídos.

Suponha que você esteja trabalhando em um projeto onde já salvou as alterações na pasta Olympics. No entanto, você adicionou novas fontes de dados chamadas 2024_Data e 2025_Data. Se você executar o comando git clean -i, receberá um prompt permitindo que você escolha entre as seguintes opções para excluir as alterações não rastreadas.

  • clean: Remover arquivos selecionados

  • filter: Especificar um padrão para arquivos a serem limpos

  • select: Escolher arquivos individuais por número

  • quit: Sair sem deletar nada

git clean -i modo interativo. Imagem do Autor.

Execução de teste para segurança

Usar a opção git clean -n é uma medida de segurança útil, pois realiza uma “execução de teste”, exibindo uma lista de arquivos e diretórios não rastreados que seriam removidos sem realmente deletá-los. Isso permite que você revise as alterações antes de executá-las.

No exemplo abaixo, o comando git clean -n lista os arquivos que devem ser deletados, mas não os deleta.

git clean -n para execução de teste. Imagem do Autor.

Combinando com git reset

Para redefinir completamente um diretório de trabalho do Git, você pode combinar git reset e git clean onde:

  • git reset --hard: Redefine os arquivos rastreados para o último estado salvo, descartando quaisquer alterações locais.

  • git clean -fd: Remove arquivos e diretórios não rastreados, deixando apenas os arquivos salvos.

Essa combinação garante um diretório de trabalho completamente limpo, tornando-o útil ao trocar de ramificações, desfazer alterações experimentais ou se preparar para um novo começo.

Confira ou Git Pull Force: Como Sobrescrever uma Ramificação Local com Remota tutorial para aprender as melhores práticas para sobrescrever alterações locais.

Guia Passo a Passo para Usar git clean

Siga estas etapas para limpar com segurança seu repositório Git e remover arquivos e diretórios não rastreados indesejados.

Passo 1: Verifique o estado atual

Antes de limpar, execute git status para verificar o estado atual do seu repositório e ver quais arquivos estão não rastreados.

git status

git status para verificar o estado atual do repositório. Imagem por Autor.

Passo 2: Pré-visualize o que será removido

Antes de executar qualquer comando de remoção, use git clean -n para pré-visualizar o que será removido.

git clean -n

git clean -n para pré-visualizar o que deletar. Imagem por Autor.

Passo 3: Remova arquivos não rastreados

Execute git clean -f para remover arquivos não rastreados se a pré-visualização parecer correta.

git clean -f

Remova alterações não rastreadas usando git clean -f. Imagem por Autor.

Passo 4: Remova diretórios não rastreados

Use git clean -fd para remover diretórios não rastreados.

git clean -fd

Remova diretórios não rastreados usando git clean -fd. Imagem do Autor.

Passo 5: Remova arquivos ignorados

Para remover tanto arquivos não rastreados quanto ignorados, use o comando git clean -fx.

git clean -fx

Passo 6: Use o modo interativo para limpeza seletiva

Para mais controle, considere usar git clean -i para remoção interativa. Este modo permite que você selecione quais arquivos deletar individualmente.

Git clean -i

git clean -i modo interativo para limpeza seletiva. Imagem do Autor.

git clean vs. Outros Comandos Git

O comando git clean é frequentemente comparado com outros comandos Git que modificam ou redefinem arquivos. A tabela abaixo destaca as principais diferenças:

Command Function
git clean Remove arquivos e diretórios não rastreados permanentemente.
git reset Redefine arquivos rastreados para um estado anterior, afetando mudanças em estágio e comprometidas.
git checkout (ou git restore) Descarta mudanças em arquivos rastreados, mas não os remove.
git stash Salva temporariamente tanto mudanças rastreadas quanto não rastreadas para uso posterior.

Melhores Práticas do Git Clean

Para usar git clean com segurança e eficácia, siga estas melhores práticas:

  • Use Dry Runs (-n) Antes da Exclusão: Sempre use a opção git clean -n para fazer um teste antes de executar o git clean. Isso permite que você visualize quais arquivos serão removidos sem realmente excluí-los.

  • Esteja atento aos arquivos ignorados: Ao usar git clean, tenha cuidado com a opção -x, que remove arquivos ignorados. Isso pode potencialmente excluir arquivos de configuração importantes listados no .gitignore. Se precisar remover arquivos ignorados, utilize o comando git clean -fx.

  • Combinar com Git Reset para Limpeza Completa: Para redefinir completamente seu repositório, combine git reset com git clean, onde git reset --hard restaura os arquivos rastreados para o último estado commitado e git clean -fd remove os arquivos e diretórios não rastreados.

  • Use o Modo Interativo (-i) para Deletar com Segurança: Em vez de remover arquivos indiscriminadamente, use o modo interativo (git clean -i) para revisar e selecionar os arquivos a serem excluídos.

Riscos Potenciais e Precauções

O uso do git clean pode ser arriscado se não for feito com cuidado, pois ele deleta permanentemente arquivos sem armazená-los em nenhum lugar. Aqui estão alguns riscos e precauções importantes a serem considerados:

  • Arquivos são excluídos permanentemente: Ao contrário do git stash, que salva temporariamente as alterações, o git clean exclui permanentemente arquivos e diretórios não rastreados. Uma vez removidos, esses arquivos não podem ser recuperados através do Git. Se você acha que pode precisar dos arquivos mais tarde, considere fazer stash ou fazer backup deles antes de executar o comando git clean.

  • Tenha cuidado com a opção -x: Usar o git clean-fx remove arquivos ignorados, que podem incluir arquivos de configuração importantes listados no .gitignore ou caches de dependências como node_modules/ e venv/. Remover acidentalmente esses arquivos pode quebrar builds ou ambientes de desenvolvimento, portanto, use essa opção apenas quando necessário.

  • Execute um Teste Dry Run Primeiro: Sempre execute um teste dry run usando git clean -n antes de executar git clean -f. Esse passo permite que você visualize quais arquivos serão excluídos, ajudando a evitar a remoção acidental de arquivos importantes

  • Abordagens Alternativas: Em alguns cenários, usar git stash pode ser uma opção melhor do que git clean. O comando git stash -u armazena arquivos não rastreados, excluindo arquivos ignorados para possível recuperação posterior, e o git stash pop restaura as alterações armazenadas, se necessário. Este método é útil quando você precisa trocar de branch ou limpar seu espaço de trabalho sem perder permanentemente as alterações.

Conclusão

Um codebase bem mantido demonstra atenção aos detalhes, eficiência e a capacidade de gerenciar ativos digitais de forma responsável. Os empregadores procuram desenvolvedores que entendam as melhores práticas, como usar git clean -n antes de excluir arquivos, ter cautela com arquivos ignorados usando -x e fazer uso de alternativas mais seguras como git stash.

Fazer cursos na DataCamp não é apenas uma ótima maneira de aprender, mas também uma excelente maneira de sinalizar aos empregadores que você leva o desenvolvimento de software a sério. Nesse sentido, recomendo estudar o post do blog Top 20 Perguntas e Respostas de Entrevista Git para Todos os Níveis e fazer a nossa nova trilha de habilidades Git Fundamentals para se tornar um especialista em tudo relacionado ao Git.

Source:
https://www.datacamp.com/tutorial/git-clean