User Tools

Site Tools


wiki:change_author_email_history_retroactively

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:

  1. git filter-branch --env-filter '
  2. OLD_EMAIL="your-old-email@example.com"
  3. CORRECT_NAME="Your Correct Name"
  4. CORRECT_EMAIL="your-correct-email@example.com"
  5. if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
  6. then
  7. export GIT_COMMITTER_NAME="$CORRECT_NAME"
  8. export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
  9. fi
  10. if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
  11. then
  12. export GIT_AUTHOR_NAME="$CORRECT_NAME"
  13. export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
  14. fi
  15. ' --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

Except where otherwise noted, content on this wiki is licensed under the following license: CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki