Skip to content

Instantly share code, notes, and snippets.

@tanshuai
Created August 14, 2021 04:25
Show Gist options
  • Save tanshuai/ab06787d7c024e4ff603e955f66ed716 to your computer and use it in GitHub Desktop.
Save tanshuai/ab06787d7c024e4ff603e955f66ed716 to your computer and use it in GitHub Desktop.
Replace/modify committer name & email of all Git historical commits
#!/bin/sh
# Replace/modify committer name & email of all Git historical commits
# git-replace-committer-email.sh v1 git@tanshuai.com
# Usage:
# cd <git repo>
# sh ../git-replace-committer-email.sh
# git push --force --tags origin HEAD:main
git filter-branch -f --env-filter '
OLD_EMAIL="old@email.com"
CORRECT_NAME="NEW NAME"
CORRECT_EMAIL="new@email.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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment