0Pricing
Git & GitHub Professional Workflow · Aula

Reescrevendo o Histórico com git filter-repo

Aprenda a reescrever o histórico de um repositório em grande escala para remover arquivos grandes ou dados confidenciais usando git filter-repo.

Reescrevendo o Histórico com git filter-repo é uma aula grátis de Git & GitHub Professional Workflow no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Git & GitHub Professional Workflow, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Git & GitHub Professional Workflow inclui 4 aulas no total.

Por que reescrever o histórico

Às vezes, é necessário reescrever todo o histórico de um repositório: para remover uma senha vazada, excluir arquivos enormes confirmados acidentalmente ou corrigir os e-mails de autor em todas as confirmações.

Conheça o git filter-repo

O git filter-repo é a ferramenta moderna e rápida para reescrever o histórico. Ela substitui o antigo e lento git filter-branch.

Instalando a ferramenta

É um programa separado, geralmente instalado por meio do pip ou de um gerenciador de pacotes.

pip install git-filter-repo

Trabalhe sempre em um clone

Reescrever o histórico é uma operação destrutiva. Trabalhe em um clone novo para poder descartá-lo se algo der errado.

git clone --mirror git@github.com:you/repo.git

Removendo um arquivo do histórico

Para eliminar um arquivo de todas as confirmações, use as opções --path e --invert-paths.

git filter-repo --path secrets.env --invert-paths

Removendo objetos grandes

Você pode remover arquivos acima de um limite de tamanho para reduzir um repositório inchado.

git filter-repo --strip-blobs-bigger-than 10M

Reescrevendo e-mails de autor

Corrija um e-mail de autor incorreto em todas as confirmações usando um mapa de e-mails ou uma função de retorno de chamada.

git filter-repo --mailmap my-mailmap.txt

Substituindo texto no histórico

Limpe as sequências secretas em todos os locais onde aparecem usando um arquivo de expressões.

git filter-repo --replace-text expressions.txt

Os hashes das confirmações mudam

A reescrita do histórico produz novos hashes de confirmação para tudo o que foi afetado. O histórico do repositório diverge de todas as cópias antigas.

Enviando o resultado à força

Após a reescrita, você precisa enviar as alterações à força, pois o histórico remoto não corresponde mais ao local.

git push --force --all

Coordene com sua equipe

Como os clones de todos agora estão desatualizados, os colegas de equipe precisam clonar novamente. Anuncie a reescrita para evitar que os dados removidos sejam restaurados.

Verificação rápida

Teste sua compreensão sobre a reescrita do histórico.

Recapitulação

Você aprendeu a reescrever o histórico:

  • git filter-repo substitui filter-branch
  • Remova arquivos, objetos grandes ou texto secreto de todo o histórico
  • Trabalhe sempre em um clone; os hashes de confirmação mudam
  • Envie as alterações à força e peça à equipe que clone novamente depois

Perguntas Frequentes

A aula “Reescrevendo o Histórico com git filter-repo” é grátis?

Sim — o texto completo de “Reescrevendo o Histórico com git filter-repo” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Git & GitHub Professional Workflow, atualize para CoddyKit PRO. O curso de Git & GitHub Professional Workflow inclui 4 aulas no total.

O que vou aprender em “Reescrevendo o Histórico com git filter-repo”?

Aprenda a reescrever o histórico de um repositório em grande escala para remover arquivos grandes ou dados confidenciais usando git filter-repo. Você pratica Git & GitHub Professional Workflow com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Git & GitHub Professional Workflow?

Nenhuma experiência prévia é necessária. Git & GitHub Professional Workflow no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Reescrevendo o Histórico com git filter-repo”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Git & GitHub Professional Workflow?

Sim. Cada aula de Git & GitHub Professional Workflow inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Git Reflog e recuperação do histórico
  2. Git Bisect para depuração
  3. Manutenção e organização do repositório
  4. Reescrevendo o Histórico com git filter-repo
← Voltar para Git & GitHub Professional Workflow