Considerando que o uso de nãogit-filter-branch é desejado , faça o mesmo no git-filter-repo (pode ser necessário instalá-lo primeiro pip install git-filter-repo):
git-filter-repo --name-callback 'return name.replace(b"OldName", b"NewName")' --email-callback 'return email.replace(b"old@email.com", b"new@email.com")'
Se o repositório for original, sem controle remoto, você precisará adicionar --forcepara forçar a reescrita. (Você pode criar um backup do seu repositório antes de fazer isso.)
Se você não deseja preservar as referências (elas serão exibidas no histórico da ramificação da Git GUI), será necessário adicionar --replace-refs delete-no-add.
Para recursos mais avançados, consulte "Filtragem de nomes e e-mails" .
PS Roubado e aprimorado em https://stackoverflow.com/a/59591928/714907 .