Git推送远端仓库失败,多GitHub/GitLab账号是否存在冲突?
问题原因
你遇到的推送失败问题,90%以上概率是Git多账号凭证缓存冲突导致:本地之前存储了旧账号RusselVyper的身份凭据,推送新账号仓库时默认调用旧凭据,身份校验不通过就会报错。
排查&解决步骤
第一步:校验当前项目的Git身份配置
进入本地项目根目录,执行以下命令查看当前项目绑定的用户名和邮箱:git config user.name git config user.email如果输出不是新账号joyprakashdas的用户名和对应注册邮箱,执行以下命令修改当前项目的身份配置(多账号场景不建议加
--global参数,避免覆盖全局默认配置):git config user.name "joyprakashdas" git config user.email "你的新GitHub账号绑定的邮箱地址"第二步:校验远程仓库地址
执行命令查看当前项目绑定的远程仓库地址:git remote -v确认输出的origin地址是joyprakashdas账号下对应仓库的地址,若绑定错误执行命令修改:
git remote set-url origin 你的新仓库HTTPS/SSH地址第三步:清理旧账号的缓存凭证
这是解决多账号冲突的核心步骤,不同操作系统操作逻辑不同:- Windows系统:打开「控制面板→用户账户→凭据管理器→Windows凭据」,找到所有
git:https://github.com相关的条目全部删除,后续推送时会重新弹窗要求输入账号信息,输入新账号的用户名和Personal Access Token即可(GitHub当前已不支持密码直接推送,需要在账号设置的「Developer settings」下生成权限勾选repo的PAT作为密码使用) - Mac系统:打开「钥匙串访问」,搜索github,删除所有匹配的互联网密码条目,重新推送时输入新账号信息即可
- Linux系统:打开
~/.git-credentials文件,删除所有github相关的行,或者执行git config --global --unset credential.helper临时关闭凭证缓存,推送完成后可按需重新配置
- Windows系统:打开「控制面板→用户账户→凭据管理器→Windows凭据」,找到所有
第四步:SSH场景的多账号适配(如果你用SSH方式推送)
如果用SSH协议推送,需要单独配置多账号的SSH密钥区分:- 生成新账号对应的SSH密钥:
ssh-keygen -t ed25519 -C "新账号绑定邮箱" -f ~/.ssh/id_ed25519_github_joy - 把生成的
.pub公钥内容添加到joyprakashdas账号的SSH设置中 - 编辑
~/.ssh/config文件,添加以下配置区分不同账号:Host github-joy HostName github.com User git IdentityFile ~/.ssh/id_ed25519_github_joy IdentitiesOnly yes - 修改当前项目的远程地址为适配后的SSH地址:
git remote set-url origin git@github-joy:joyprakashdas/你的仓库名.git
- 生成新账号对应的SSH密钥:
GitLab的推送失败问题排查逻辑和上述步骤完全一致,单独配置GitLab对应的账号信息、凭证或SSH密钥即可。
相关报错截图


内容的提问来源于stack exchange,提问作者Russel
相关产品推荐
相关产品推荐

