Git提交仍标记已注销GitHub账户,如何修正提交身份标识?
哈哈,这种情况我之前也碰到过,确实有点小尴尬!别担心,这根本不是什么大问题,本质就是本地Git的用户配置没跟上你的账户变化,咱们一步步来搞定:
第一步:先确认当前的Git用户配置
先打开终端,输入下面的命令,看看你现在Git用的是哪个账户的信息:git config --list
你会看到user.name和user.email这两项,大概率显示的是你已经删除的账户2的昵称和邮箱,这就是问题根源!
第二步:更新全局Git配置(适用于所有本地仓库)
如果你的所有本地代码仓库都想用账户1的信息提交,直接修改全局配置就行:
- 设置账户1的昵称:
git config --global user.name "你的账户1昵称" - 设置账户1绑定的邮箱:
git config --global user.email "你的账户1邮箱"
第三步:个别仓库单独配置(可选)
要是某个特定仓库需要用不同的信息(不过你现在应该用不上),可以先进入那个仓库的目录,然后去掉--global参数执行命令:
git config user.name "账户1昵称"git config user.email "账户1邮箱"
第四步:修正已提交的历史记录(可选)
如果看着之前的提交都显示账户2不舒服,还可以把历史提交的作者信息改成账户1的。不过要注意:如果是多人协作的仓库,修改历史会影响其他人,一定要先和团队沟通;如果是你自己的仓库,就放心操作。
操作方法如下:
- 进入目标仓库的目录,创建一个名为
change-author.sh的脚本文件,把下面的内容复制进去(记得替换成你自己的信息):
#!/bin/sh OLD_EMAIL="你账户2的旧邮箱地址" CORRECT_NAME="你的账户1昵称" CORRECT_EMAIL="你的账户1绑定的邮箱" git filter-branch --env-filter ' 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
- 给脚本添加执行权限:
chmod +x change-author.sh - 运行脚本:
./change-author.sh - 最后把修改后的历史推送到远程仓库:
git push --force --all
做完这些,新的提交就会显示账户1的信息了,历史提交也会改成账户1的标识~
内容的提问来源于stack exchange,提问作者Alexey Orlov
相关产品推荐
相关产品推荐

