You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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的。不过要注意:如果是多人协作的仓库,修改历史会影响其他人,一定要先和团队沟通;如果是你自己的仓库,就放心操作。

操作方法如下:

  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
  1. 给脚本添加执行权限:chmod +x change-author.sh
  2. 运行脚本:./change-author.sh
  3. 最后把修改后的历史推送到远程仓库:git push --force --all

做完这些,新的提交就会显示账户1的信息了,历史提交也会改成账户1的标识~

内容的提问来源于stack exchange,提问作者Alexey Orlov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:15:59