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

更换GitHub账号后执行git push仍显示旧账号提交问题如何解决?

问题核心原因

Git的提交作者身份和推送仓库的认证权限是两套独立的配置,你遇到的情况是前者还保留着旧账号的信息:

  • 你删除旧凭据、用新账号登录VSCode,只是修改了推送时的权限认证信息,只能保证你有权限把代码推送到新账号的仓库,不会改动本地生成的提交记录里的作者信息
  • GitHub匹配提交所属账号的唯一依据是提交记录里绑定的邮箱地址,只要这个邮箱和你的旧账号绑定,哪怕用新账号的权限推送,提交也会被记在旧账号名下。

完整修复步骤

第一步:核对当前Git用户配置

在项目目录下执行以下命令,确认全局和项目级的用户配置:

# 查看全局生效的默认用户配置
git config --global user.name
git config --global user.email

# 查看当前项目单独配置的用户信息(优先级高于全局)
git config user.name
git config user.email

如果输出的用户名/邮箱是旧账号的,即可确认问题来源。

第二步:修改用户配置

根据你的需求选择修改范围:
如果要所有本地新项目默认使用新账号信息,修改全局配置:

git config --global user.name "新GitHub账号的用户名"
git config --global user.email "新GitHub账号绑定的主邮箱"

如果只想给当前项目用新账号信息,在项目目录下执行以下命令:

git config user.name "新GitHub账号的用户名"
git config user.email "新GitHub账号绑定的主邮箱"

第三步:修复已生成的旧作者提交(可选)

如果之前已经用旧作者信息提交了代码,需要修改历史记录的话,可以执行以下命令重写最近N次提交的作者信息(将N替换为你要修改的提交数量,比如最近3次就填3):

git rebase -i HEAD~N -x "git commit --amend --reset-author --no-edit"

修改完成后强制推送到远程仓库即可:

git push --force-with-lease

第四步:排查凭据残留(可选)

如果修改完用户配置后推送还是出现异常,再检查认证配置的残留项:

  1. 打开「控制面板」→「用户账户」→「凭据管理器」→「Windows凭据」
  2. 搜索所有前缀为git:https://github.com的凭据项,全部删除
  3. 下次执行git push时会重新弹出认证窗口,输入新账号的凭据即可。

如果你使用SSH协议推送仓库,额外检查用户目录下.ssh/config文件,确认默认关联的GitHub密钥是新账号配置的密钥即可。

内容的提问来源于stack exchange,提问作者Jason Todd

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 13:24:01