如何获取仓库访问权限并解决GitHub推送403权限错误?
GitHub仓库权限与推送报错问题解答
1. 如何获取仓库的访问权限?
这得看仓库是公开还是私有,分两种情况处理:
- 私有仓库:
你得联系仓库的所有者或者拥有管理员权限的成员,让他们在仓库的「Settings」→「Access」页面里把你添加为协作者,或者把你加入到有权限的组织团队中,同时给你分配合适的权限(比如读写、只读)。 - 公开仓库:
公开仓库默认允许所有人克隆(clone),如果需要推送修改的权限,同样需要联系仓库所有者添加你为协作者;要是你只是想贡献代码,也可以先Fork这个仓库,在自己的Fork版本里修改后,提交Pull Request给原仓库等待合并。
2. 推送时报错403,如何移除旧账户并修复?
这个报错是因为你的本地Git缓存了旧账户user1212114的凭证,导致推送时用了旧账户的身份,而不是你现在的user21。按照下面的步骤来修复:
第一步:检查并更新本地Git用户配置
先打开终端,看看当前全局的Git用户信息:
git config --global user.name git config --global user.email
如果显示的是旧账户user1212114的信息,赶紧更新成user21的:
git config --global user.name "user21" git config --global user.email "你的user21关联邮箱地址"
要是你只需要给当前仓库单独设置,去掉命令里的--global参数就行。
第二步:清除本地缓存的GitHub凭证
不同系统的凭证存储位置不一样,对应操作如下:
- Windows:打开「控制面板」→「用户账户」→「凭据管理器」→「Windows凭据」,找到带有
git:https://github.com的条目,右键删除即可。 - macOS:在终端里执行以下命令,按两次回车完成删除:
git credential-osxkeychain erase host=github.com protocol=https - Linux:如果用的是libsecret凭证存储,执行:
要是凭证存在git credential-libsecret erase host=github.com protocol=https~/.git-credentials文件里,直接编辑这个文件,删掉GitHub相关的条目就行。
第三步:检查并修正远程仓库地址(可选)
有时候远程仓库的URL可能带了旧账户信息,先检查一下:
git remote -v
如果输出里显示的是https://user1212114@github.com/user21/simple-site.git,就把它改成user21的:
git remote set-url origin https://user21@github.com/user21/simple-site.git
当然,如果你配置了SSH密钥,换成SSH地址更省心(不用每次输密码):
git remote set-url origin git@github.com:user21/simple-site.git
第四步:重新推送验证
现在再次执行推送命令:
git push -u origin master
这时候系统会提示你输入user21的GitHub账号信息,如果开启了双因素认证,记得用个人访问令牌(PAT)代替密码,并且确保这个PAT有仓库的读写权限。
内容的提问来源于stack exchange,提问作者codfish555
相关产品推荐
相关产品推荐

