“Ops, enviei um commit com algo confidencial para um projeto público do GitHub!”

Então, você acidentalmente enviou um commit com algumas credenciais. Você devia se envergonhar.

Aqui está uma solução potencial:

  1. Tornar o repositório GitHub privado
  2. Renomeie o repositório, talvez apenas anexe “-backup”
  3. Anote os cometimentos ofensivos
  4. Corre git fetch --all
  5. Crie um novo repositório GitHub com o mesmo nome. Isso interromperá o aliasing automático que o GitHub faz quando você renomeia um repositório
  6. Faça todos os tipos de rebasee / ou filter-branchlocalmente para garantir que as credenciais não existam em nenhum commit. Isso pode demorar um pouco se você precisar rebase mais do que alguns commits.
  7. Execute a coleta de lixo git: git gc --aggressive
  8. Certifique-se de que nenhum dos SHAs ofensivos exista, você pode apenas grep dentro do .gitdiretório de seu repositório local.
  9. Execute git push --all -fpara enviar todos os branches, supondo que você já os tenha obtido na etapa 4.

Cenário

Prevenindo isso no futuro

  • Diga à pessoa que o cometeu as consequências do que acabou de acontecer.
  • Mais importante, tente descobrir por que isso aconteceu, talvez eles estivessem com um prazo apertado e tenham ficado um pouco desleixados – acontece com os melhores de nós.
  • Tente armazenar credenciais em variáveis ​​de ambiente, arquivos de configuração que são adicionados ao seu .gitignore, ou qualquer maneira de mantê-los fora do seu código.

Cenário