Alterar informações de autor
Para alterar o nome e/ou endereço de e-mail registrado em commits existentes, você deve reescrever todo o histórico do seu repositório Git.
Aviso: esta ação é destrutiva para o histórico do repositório. Se você estiver colaborando em um repositório com outras pessoas, não é uma boa ideia reescrever o histórico publicado. Você só deve fazer isso em caso de emergência.
Alterar o histórico do seu repositório no Git usando um script
Criamos um script que vai alterar todos os commits que anteriormente tinham o endereço de e-mail antigo em seus campos de autor ou committer para usar o nome e o endereço de e-mail corretos.
Observação: executar esse script reescreve o histórico de todos os colaboradores do repositório. Após conclusão dessas etapas, qualquer pessoa com bifurcações ou clones devem fazer fetch do histórico reescrito e fazer rebase de todas as alterações locais no histórico reescrito.
Antes de executar esse script, você precisará:
- Do endereço de e-mail antigo que aparece nos campos de autor/commiter que deseja alterar
- Do nome e endereço de e-mail corretos aos quais deseja que os commits sejam atribuídos
-
Abra Terminal (Terminal)Terminal (Terminal)Git Basho terminal.
-
Crie um clone vazio do seu repositório:
git clone --bare https://hostname/user/repo.git cd repo.git
-
Copie e cole o script, substituindo as seguintes variáveis com base nas informações coletadas:
OLD_EMAIL
CORRECT_NAME
CORRECT_EMAIL
#!/bin/sh git filter-branch --env-filter ' OLD_EMAIL="your-old-email@example.com" CORRECT_NAME="Your Correct Name" CORRECT_EMAIL="your-correct-email@example.com" if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ] then export GIT_COMMITTER_NAME="$CORRECT_NAME" export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL" fi if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ] then export GIT_AUTHOR_NAME="$CORRECT_NAME" export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL" fi ' --tag-name-filter cat -- --branches --tags
-
Pressione Enter para executar o script.
-
Revise o novo histórico do Git a fim de verificar se há erros.
-
Publique o histórico corrigido no GitHub Enterprise:
git push --force --tags origin 'refs/heads/*'
-
Limpe o clone temporário:
cd .. rm -rf repo.git