wiki:change_author_email_history_retroactively
Table of Contents
Change git author and email in history retroactively
Before executing the script, set your user.name and user.email git config parameter properly!
This changes SHA1s, so take care when using it on a branch that has already been pushed.
First stash any unstaged changes
git stash
Apply fix
Set variables on lines 2,3 and 4 below and run:
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
Delete duplicate backup history
git update-ref -d refs/original/refs/heads/master rm -rf .git/refs/original/
Verify the new rewritten log via
git log --pretty=format:"[%h] %cd - Committer: %cn (%ce), Author: %an (%ae)"
Tested on
See also
References
wiki/change_author_email_history_retroactively.txt · Last modified: 2021/03/29 16:21 by antisa