Skip to content

Instantly share code, notes, and snippets.

@duckinator
Created September 6, 2017 21:45
Show Gist options
  • Save duckinator/7dfda6e4ad501c1682ad43f71a700d8a to your computer and use it in GitHub Desktop.
Save duckinator/7dfda6e4ad501c1682ad43f71a700d8a to your computer and use it in GitHub Desktop.
#!/bin/bash
# https://help.github.com/articles/changing-author-info/
export NEW_NAME="your correct name here"
export NEW_EMAIL="newemail@example.com"
for EMAIL in {oldemail1@example.com,oldemail2@example.com,oldemail3@example.com}; do
git filter-branch -f --env-filter '
OLD_EMAIL="'$EMAIL'"
CORRECT_NAME="'$NEW_NAME'"
CORRECT_EMAIL="'$NEW_EMAIL"
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
done
# Verify everything with `git log` and,
# if it's correct run:
# git push --force --tags origin 'refs/heads/*'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment