{{tag>git}} ====== 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 ====== * https://stackoverflow.com/questions/750172/how-to-change-the-author-and-committer-name-and-e-mail-of-multiple-commits-in-gi