切换GitHub账号后推送代码仍提示旧账号权限不足求助
解决GitHub账号切换后推送权限403及git remote set-url用法问题
一、修复git remote set-url用法错误
你执行命令时出现用法提示,是因为命令格式不符合要求。正确修改远程仓库地址的命令如下:
- 切换为SSH协议(适配已配置的新账号SSH密钥):
git remote set-url origin git@company.com:Company/project.git - 切换为HTTPS协议:
git remote set-url origin https://company.com/Company/project.git
执行后用git remote -v命令确认远程地址已更新。
二、排查403权限拒绝问题(旧账号身份仍被识别)
1. 检查并修改仓库本地用户配置
全局的user.email可能被当前仓库的本地配置覆盖,先查看当前仓库的用户信息:
git config user.email git config user.name
如果输出是旧账号的信息,执行以下命令修改仓库本地配置:
git config user.email "newemail@company.com" git config user.name "你的新用户名"
2. 清理系统凭据缓存
系统可能缓存了旧账号的HTTPS认证凭据,导致推送时自动使用旧身份:
- Windows:打开「凭据管理器」→「Windows凭据」,找到包含
company.com的条目并删除。 - macOS:打开「钥匙串访问」,搜索
company.com或github相关的密码条目,删除后重启终端。 - Linux:若使用缓存凭据,执行
git credential-cache exit清除;若使用libsecret等管理器,找到对应条目删除。
3. 验证SSH密钥配置有效性
确认新账号的SSH密钥已正确生效:
- 检查公司GitHub账号的「SSH和GPG密钥」设置,确认新公钥已添加。
- 查看本地已加载的SSH密钥:
若未显示新密钥的指纹,执行ssh-add -lssh-add ~/.ssh/你的新密钥文件名(有密码则输入)。 - 测试SSH连接:
确认返回信息显示的是新账号名称,而非旧账号。ssh -T git@company.com
4. 关联gh凭据与git认证
gh auth登录的账号可能未被git用于认证,执行以下命令让git使用gh的凭据:
git config --global credential.helper gh
再执行gh auth status确认当前登录账号对目标仓库有推送权限。
5. 临时强制指定账号推送(测试用)
若以上方法无效,可临时在推送命令中指定新账号:
git push --repo https://新用户名:新密码@company.com/Company/project.git
(注意:此命令会明文暴露密码,仅用于测试验证,之后建议改用SSH或凭据管理器)
内容的提问来源于stack exchange,提问作者dylatwork
相关产品推荐
相关产品推荐

