cover

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

阅读量:638
评论数量:0
发布时间:2023-01-30 18:15

如果你已经在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

评论(0)
暂无评论
logo

诚哥博客是一个专注于分享技术、分享资源的平台,由诚哥打造必属精品,团队有着多年开发经验,专注研究各种前沿技术和资源等服务;并提供有保障的维护及售后

关注我们

关注微信公众号

关注微信公众号

Copyright © 2022-2025 诚哥博客 - 诚哥博客