修改Git已提交推送的记录用户名作者名邮箱

如果你已经在Git中提交并推送了代码,但是想要修改其中的用户名、作者名、或邮箱,可以使用如下命令脚本,在开始修改前,清确保当前分支为最新,并做好备份

注意事项

在开始修改前,清确保当前分支为最新,并做好备份

编写脚本

在你仓库的路径下编辑脚本并运行

git filter-branch --env-filter '
OLD_EMAIL="你旧的邮箱"
CORRECT_NAME="新的用户名作者名"
CORRECT_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

image-20230130095705604

执行完后别忘了修改你在当前仓库的用户名作者名,后面提交用

# 本仓库
git config --local user.name 新的用户名
git config --local user.email 新的邮箱

# 全局
git config --global user.name 新的用户名
git config --global user.email 新的邮箱

推送数据

推送因为运行了git filter-branch命令后,历史记录已经被更改,并且远程存储库中的提交记录不再与本地存储库中的提交记录相匹配。

解决此问题的方法是强制重新推送:

git push origin <branch> --force

注意:使用强制重新推送可能导致远程存储库中的数据丢失,因此请谨慎使用。

执行后会在git历史上显示两条记录

image-20230130095727392

修改后

强制推送后再看记录就变成修改的了

image-20230130100433088

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容