Since this is something I’ve had to figure out 5 times already:
#!/bin/sh
git filter-branch --env-filter '
if [ "$GIT_AUTHOR_EMAIL" = "old-email-address" ];
then
export GIT_AUTHOR_EMAIL="new-email-address";
fi
' HEAD
… will replace all occurrences of ‘old-email-address’ in the git commit email field with ‘new-email-address’ on the current branch.
The usual caveats of rewriting history apply: your head will diverge and anyone working off your branch is in for a hassle.