Skip to content

Instantly share code, notes, and snippets.

@linhai86
Created July 18, 2019 00:09
Show Gist options
  • Save linhai86/53af906eee14955d7a749369f3dc5b50 to your computer and use it in GitHub Desktop.
Save linhai86/53af906eee14955d7a749369f3dc5b50 to your computer and use it in GitHub Desktop.
Change the name/email of previous commits.

Copy paste the following script, replace the following variables:

  • OLD_EMAIL
  • CORRECT_NAME
  • CORRECT_EMAIL
#!/bin/sh

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

Run the script within the repo. And push with command:

git push --force --tags origin 'refs/heads/*'

See details here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment