Skip to content

Instantly share code, notes, and snippets.

@weiting-tw
Last active September 10, 2018 06:05
Show Gist options
  • Save weiting-tw/d6e2990c952ef27d88aa2c93dffb431a to your computer and use it in GitHub Desktop.
Save weiting-tw/d6e2990c952ef27d88aa2c93dffb431a to your computer and use it in GitHub Desktop.
Changing author info
#!/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
@weiting-tw
Copy link
Author

weiting-tw commented Jul 2, 2018

Create a fresh, bare clone of your repository:

git clone --bare https://github.com/user/repo.git && cd repo.git
cd repo.git

Copy and paste the script, replacing the following variables based on the information you gathered:
OLD_EMAIL
CORRECT_NAME
CORRECT_EMAIL

update command:

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

Clean up the temporary clone:

cd .. rm -rf repo.git

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