如果你已经在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
执行完后别忘了修改你在当前仓库的用户名作者名,后面提交用
# 本仓库
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历史上显示两条记录
修改后
强制推送后再看记录就变成修改的了
© 版权声明
THE END
暂无评论内容