Het gebeurt al wel eens dat je in een commit de verkeerde author of email hebt staan. Als je zo een reeks commits hebt in een project, kan je met een shell script alle commits herschrijven.
#!/bin/sh
git filter-branch --env-filter '
an="$GIT_AUTHOR_NAME"
am="$GIT_AUTHOR_EMAIL"
cn="$GIT_COMMITTER_NAME"
cm="$GIT_COMMITTER_EMAIL"
if [ "$GIT_COMMITTER_EMAIL" = "old_mail@example.com" ] || [ "$GIT_COMMITTER_EMAIL" = "another_old_mail_to_change@example.com" ]
then
cn="New Name"
cm="new_email@example.com"
fi
if [ "$GIT_AUTHOR_EMAIL" = "old_mail@example.com" ] || [ "$GIT_AUTHOR_EMAIL" = "another_old_mail_to_change@example.com" ]
then
an="New Name"
am="new_email@example.com"
fi
export GIT_AUTHOR_NAME="$an"
export GIT_AUTHOR_EMAIL="$am"
export GIT_COMMITTER_NAME="$cn"
export GIT_COMMITTER_EMAIL="$cm"
' -f -- --all
Nadien moet je dan wel geforceerd pushen.
git push --force
Wel opletten als er nog andere mensen zijn die een lokale versie hebben van de repo…