更改作者信息
git要修改历史历史记录中所有提交用户名称和/或电子邮件地址,可以在仓库根目录下执行如下操作:
①新建如下脚本rename.sh
rename.sh
#!/bin/sh
#更改提交中所有邮箱为OLD_EMAIL的为新的用户名和新的邮箱
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
' -f --tag-name-filter cat -- --branches --tags #-f为强行覆盖
#取消下面的#注释,将自动强行推送所有修改到主分支
#git push origin master --force
②执行一下命令赋予超级权限(如果文件权限不够)
sudo chmod 777 rename.sh
③执行rename.sh脚本
./rename.sh
这样可以用gitk . 看到所有的提交记录用户信息都被修改了;
④执行–force的推送命令,强行推送到服务器
git push origin master --force
官方参考文档:https://help.github.com/en/github/using-git/changing-author-info