Purgar um arquivo do histórico

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Git é um sistema de controle de versão popular que permite aos desenvolvedores rastrear as alterações em seu código-base. No entanto, às vezes, torna-se necessário remover completamente um arquivo do histórico do repositório. Este laboratório irá guiá-lo através do processo de purgação de um arquivo do histórico do Git.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 94%. Recebeu uma taxa de avaliações positivas de 90% dos estudantes.

Purgar um arquivo do histórico

Suponha que você tenha acidentalmente feito um commit de um arquivo contendo informações sensíveis, como chaves de API ou senhas, para o seu repositório Git. Você percebe que esse arquivo nunca deveria ter sido submetido e deseja removê-lo completamente do histórico do repositório. No entanto, simplesmente excluir o arquivo e fazer o commit da alteração não o removerá do histórico do repositório. O arquivo ainda estará acessível em commits anteriores, o que pode representar um risco à segurança.

Para completar este laboratório, você usará o repositório Git git-playground da sua conta do GitHub, que vem de um fork de https://github.com/labex-labs/git-playground.git. Este repositório contém um arquivo chamado file1.txt que nunca deveria ter sido submetido. Por favor, purgue file1.txt do histórico do repositório, siga estes passos:

  1. Clone o repositório para sua máquina local:
git clone https://github.com/your-username/git-playground
  1. Use os seguintes comandos para navegar até o diretório e configurar a identidade:
cd git-playground
git config --global user.name "your-username"
git config --global user.email "your-email"
  1. Exclua o arquivo do índice do repositório.
git rm --cached --ignore-unmatch file1.txt
  1. Faça o commit desta alteração com a mensagem de commit "Remove sensitive file1.txt":
git commit -m "Remove sensitive file1.txt"
  1. Reescreva o histórico do repositório, removendo todas as instâncias de file1.txt:
git filter-branch --force --index-filter "git rm --cached --ignore-unmatch file1.txt" --prune-empty --tag-name-filter cat -- --all
  1. Force o push das alterações para o repositório remoto:
git push origin --force --all

Após concluir estas etapas, file1.txt será completamente removido do histórico do repositório e, após executar git log --remotes, você não verá o commit em file1.txt.

Resumo

Purgar um arquivo do histórico do Git é um passo necessário quando informações sensíveis foram acidentalmente submetidas. Este laboratório guiou você através do processo de purgação de um arquivo do histórico do Git usando o comando git filter-branch. Lembre-se de usar cautela ao reescrever o histórico de um repositório, pois isso pode ter consequências não intencionais.