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

GitHub仓库迁移至其他账号后无法向main分支推送权限报错

GitHub仓库迁移后无push权限解决方案

1. 优先校验本地仓库远程地址配置

打开本地仓库对应的终端,执行命令查看当前绑定的远程仓库地址:

git remote -v

如果返回的origin对应地址仍是旧学校账号名下的仓库路径,直接执行命令替换为新账号下的目标仓库地址:

  • HTTPS协议替换命令:
git remote set-url origin https://github.com/[你的新账号名]/[你的仓库名].git
  • SSH协议替换命令:
git remote set-url origin git@github.com:[你的新账号名]/[你的仓库名].git

替换完成后重新执行git remote -v确认地址无误,先尝试一次push操作。

2. 清除本地缓存的旧GitHub账号凭证

如果远程地址配置正确,问题基本来自本地Git缓存了旧学校账号的认证信息——VSCode内登录新账号不会覆盖系统层存储的Git凭证:

  • Windows系统:打开系统「凭据管理器」,选择「Windows凭据」分类,找到所有标注为git:https://github.com的条目,全部删除。
  • Mac系统:打开「钥匙串访问」,搜索github.com,删除所有关联的互联网密码/访问凭证条目。
  • Linux系统:GNOME桌面打开「密码和密钥」应用删除github相关凭证;如果使用git原生凭证存储,执行git config --global --unset credential.helper清空旧配置。
    清理完成后回到VSCode重新触发push,此时会弹出GitHub官方授权窗口,选择绑定永久邮箱的新账号完成授权即可正常推送。

3. 校验仓库侧权限与分支规则

如果上述操作后仍报错,登录新账号的GitHub网页端进入对应仓库检查:

  • 进入仓库Settings > Collaborators页面,确认当前使用的新账号为仓库所有者,不存在误设为只读角色的情况。
  • 进入仓库Settings > Branches页面,检查main分支是否开启了分支保护规则,若规则限制了推送权限,可临时调整规则或为当前账号分配对应推送权限。

4. SSH协议额外排查项

如果你使用SSH协议连接GitHub,执行以下命令校验当前SSH连接绑定的账号:

ssh -T git@github.com

如果返回的欢迎信息显示的是旧学校账号名,说明你本地的SSH公钥仍绑定在旧账号下。打开本地~/.ssh/id_ed25519.pub(若使用RSA密钥则为id_rsa.pub)复制公钥内容,登录新GitHub账号进入Settings > SSH and GPG keys页面添加公钥,重新执行SSH连接校验显示新账号名后,即可正常push。

不要按照报错引导创建fork推送,该操作会将代码推送到自动生成的仓库副本,而非你迁移完成的目标主仓库。


内容的提问来源于stack exchange,提问作者Ben Trainor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 18:48:24