Git修改历史提交的用户名和邮箱
ref: [[Git#查看或修改用户名和邮箱]]
方法一
此方法只能修改最近一次提交。
1 | git commit --amend --author="userName <userEmail>" |
注意不能缺少<
>
。
方法二
此方法可以批量修改。
首先配置用户名和邮箱:
1
2git config user.name 'username'
git config user.email 'email'创建脚本:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
git filter-branch --env-filter '
OLD_NAME="old_email@email.com"
CORRECT_NAME="new_name"
CORRECT_EMAIL="new_email"
if [ "$GIT_COMMITTER_NAME" = "$OLD_NAME" ]
then
export GIT_COMMITTER_NAME="$CORRECT_NAME"
export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_NAME" = "$OLD_NAME" ]
then
export GIT_AUTHOR_NAME="$CORRECT_NAME"
export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags其中
OLD_NAME
可以换成OLD_EMAIL
用来替换邮箱。如果执行失败的话,执行一下这段命令:
1
git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD
然后再运行脚本。
推送至远程:
1
git push origin --force --all
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 技术分享!