Como ignorar arquivos já rastreados no Git
O passo a passo definitivo para resolver uma das principais dúvidas no Git: parar de rastrear arquivos de configuração ou builds sem perder seus dados locais.
Por definição da arquitetura do Git, o arquivo .gitignore afeta apenas arquivos não rastreados (untracked). Uma vez que um arquivo foi adicionado com git add e registrado em um commit, o Git passa a monitorá-lo ativamente em seu índice.
O Git nunca deixará de vigiar um arquivo rastreado apenas porque uma nova regra foi inserida no .gitignore. Para aplicar o padrão de ignorar, é indispensável remover o arquivo do índice do Git, preservando a cópia física em sua máquina.
O .gitignore impede a adição acidental de novos arquivos ao repositório. Ele não remove do rastreamento aquilo que o Git já está vigiando.
Utilize a opção --cached junto ao comando git rm para excluir o arquivo do índice do repositório sem apagar sua cópia local:
# 1. Certifique-se de que a regra está no seu .gitignore
echo ".env" >> .gitignore
# 2. Remova o arquivo apenas do índice do Git
git rm --cached .env
# 3. Comite a alteração
git commit -m "Stop tracking .env file"Se uma pasta inteira como build/ ou node_modules/ foi commitada por engano, inclua a opção recursiva -r junto com --cached:
# 1. Adicione a pasta ao .gitignore
echo "build/" >> .gitignore
# 2. Remova a pasta recursivamente do índice
git rm -r --cached build/
# 3. Comite a remoção
git commit -m "Stop tracking build/ output directory"Se vários arquivos foram commitados antes da criação do .gitignore, o método mais limpo é redefinir todo o índice do repositório:
# 1. Confirme que o ambiente de trabalho está limpo ou em stash
git status
# 2. Remova todos os arquivos do índice do Git
git rm -r --cached .
# 3. Readicione os arquivos respeitando as regras do .gitignore
git add .
# 4. Comite o índice atualizado
git commit -m "Refresh repository tracking to match .gitignore"O comando git rm --cached mantém seus arquivos locais intactos. No entanto, quando você envia esse commit para o repositório remoto, outros desenvolvedores que executarem git pull terão o arquivo apagado de seus discos locais, a menos que façam um backup antes.
Comunique sua equipe antes de subir alterações que removam arquivos de configuração do rastreamento e disponibilize modelos como .env.example.
Perguntas Frequentes
Respostas práticas para dúvidas comuns de desenvolvedores sobre regras de .gitignore, cache e configuração de repositórios.
Por que o Git continua monitorando meu arquivo após colocá-lo no .gitignore?
O .gitignore afeta apenas arquivos não rastreados. Se ele já foi commitado anteriormente, continuará no índice até que você execute 'git rm --cached <arquivo>'.
O comando git rm --cached apaga o arquivo do meu computador?
Não. A flag --cached remove o arquivo exclusivamente do índice de rastreamento do Git. Seus dados e arquivos locais permanecem inalterados.
O que acontece quando outros desenvolvedores executam git pull?
Como o Git registra a exclusão do arquivo no repositório, o git pull removerá o arquivo nos computadores dos colegas. Compartilhe sempre um .env.example para recriação.
Guias e Referências de .gitignore
Guia de sintaxe e padrões no .gitignore
Explicação abrangente sobre formato de regras, globbing, barras iniciais e finais, particularidades da negação e intervalos de caracteres no Git.
Como ignorar um diretório no Git
Explicação clara das regras para pastas: semântica da barra final, caminhos relativos à raiz, subpastas e manutenção de pastas vazias.
Exemplos de .gitignore para stacks modernas
Modelos práticos e selecionados de .gitignore para linguagens populares, frameworks de backend, desenvolvimento de jogos e contêineres.