更改 Git 提交记录中的名称和邮箱

修改脚本开头的三个变量:

  • OLD_EMAIL: 旧的邮箱地址
  • CORRECT_NAME: 新的用户名
  • CORRECT_EMAIL: 新的邮箱地址
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
git filter-branch -f --env-filter '
OLD_EMAIL="old@email.com"
CORRECT_NAME="zy"
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

修改完毕后需要强制推送到远程:

1
git push origin master -f