git使用push提交到远程仓库出现 The requested URL returned error: 403 错误

问题描述

曾用过一个 github 账号进行项目提交,现在使用另一个帐号在同一台机器进行提交时出现错误:

remote: Permission to userName/repositorieName.git denied to OldUserName.
fatal: unable to access 'https://github.com/userName/repositorieName.git/': The requested URL returned error: 403

问题原因

使用第一个账号提交时,系统保存了该账号的用户信息。在使用新帐号提交时,与已保存的用户信息不一致,所以报错。

win10 解决方案

  • 打开 cmd,输入命令:rundll32.exe keymgr.dll,KRShowKeyMgr,出现「存储的用户名和密码」窗口;
  • 将 github 相关的条目删除;
  • 重新执行提交命令,按提示输入账户名及密码后,即可提交成功。

macOS 解决方案

  • 进入钥匙串,在「登录」下找到「github.com」条目并删除;
  • 重新执行提交命令,按提示输入账户名及密码后,即可提交成功。

通用解决方案

进入库目录,找到 .git/confog 文件(macOS 可用终端执行 vi .git/config 直接进入修改),参考内容如下:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = https://github.com/userName/repositorieName.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "other"]
    remote = origin
    merge = refs/heads/other

将用户名加入 [remote "origin"] 中的 url,最终修改为 url = https://userName@github.com/userName/repositorieName.git,接下来在提交项目时会要求输入密码。此后,系统将保存密码信息,以后这个库的提交将不再要求输入密码,也不会出现 403 错误。

通用终极解决方案

在 clone 项目时就将用户名加入路径,原路径如下:

git clone -b other https://github.com/userName/repositoryName.git

添加 userName@,该路径修改为:

git clone -b other https://userName@github.com/userName/repositoryName.git

接下来在提交项目时会要求输入密码。此后,系统将保存密码信息,以后这个库的提交将不再要求输入密码,也不会出现 403 错误。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容