FMFelipe MiillerNotes on software & systems
HomeBlogAbout
GitHub

Keep building.

Felipe Miiller · © 2026

MailGitHubGitHubLinkedinGitHub
View source on GitHub
Back to blog

Como Remover Arquivos Sensíveis do Histórico Git

01/06/2025
2 min de leitura
437 palavras
Git
  • Como Remover Arquivos Sensíveis do Histórico Git com** **`git filter-repo`** **e Reconfigurar o Remote
  • Introdução
  • Ferramenta Recomendada:** **`git filter-repo`
  • Passo a Passo: Removendo o** **`.env`** **do Histórico
  • Resumo Visual do Fluxo
  • Remover o arquivo do histórico
  • Adicionar o remote novamente
  • Push forçado para atualizar o repositório remoto
  • Dicas Finais

Como Remover Arquivos Sensíveis do Histórico Git com git filter-repo e Reconfigurar o Remote

Introdução

É comum, por engano, arquivos sensíveis como

.env

acabarem sendo versionados em um repositório Git. Mesmo após removê-los e fazer um novo commit, esses arquivos ainda permanecem acessíveis no histórico de commits do repositório. Para garantir que dados confidenciais sejam realmente eliminados de todo o histórico, é necessário reescrever o histórico do Git.

Ferramenta Recomendada: git filter-repo

O

git filter-repo

é a ferramenta oficial e moderna para reescrever o histórico de repositórios Git, substituindo o antigo

git filter-branch

. Ele é muito mais rápido, seguro e fácil de usar.

Passo a Passo: Removendo o .env do Histórico

1. Instale o 

git-filter-repo

Se você ainda não tem, instale:

bashCopyInsert in Terminalpip install git-filter-repo

2. Execute o comando para remover o arquivo do histórico

No diretório raiz do seu projeto, rode:

bashCopyInsert in Terminalgit filter-repo --force --path .env --invert-paths

  • -path .env especifica o arquivo a ser removido.

  • -invert-paths faz com que todos os arquivos exceto  sejam mantidos.

    .env

3. Por que o remote some após o filtro?

Por padrão, o

git filter-repo

remove as configurações de remotes

(como

origin

) para evitar que você faça um push acidental de um histórico reescrito para um repositório remoto, o que poderia sobrescrever dados importantes para outros colaboradores.

4. Adicione novamente o remote

Após o filtro, readicione o remote:

bashCopyInsert in Terminalgit remote add origin https://github.com/SEU_USUARIO/SEU_REPOSITORIO.git

5. Faça o push forçado para o repositório remoto

Como o histórico foi reescrito, é necessário um push forçado:

bashCopyInsertgit push origin --force --all git push origin --force --tags

Atenção: Todos os colaboradores precisarão re-clonar o repositório após essa operação, pois o histórico antigo não será mais compatível.

Resumo Visual do Fluxo

# Remover o arquivo do histórico
git filter-repo --force --path .env --invert-paths

# Adicionar o remote novamente
git remote add origin https://github.com/SEU_USUARIO/SEU_REPOSITORIO.git

# Push forçado para atualizar o repositório remoto
git push origin --force --all
git push origin --force --tags

Dicas Finais

  • Use o  apenas se tiver certeza do impacto nos colaboradores.

    git filter-repo
  • Para arquivos já expostos em repositórios públicos, troque imediatamente todas as credenciais e segredos.