git 代码提交,出现403错误的问题

问题原因

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

win10 解决方案

 

macOS 解决方案

 

  • 打开 cmd,输入命令:rundll32.exe keymgr.dll,KRShowKeyMgr,出现「存储的用户名和密码」窗口;
  • 将 github 相关的条目删除;
  • 重新执行提交命令,按提示输入账户名及密码后,即可提交成功。
  • 进入钥匙串,在「登录」下找到「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 错误。

 

### Git 提交时出现 403 错误的原因分析 当执行 `git push` 命令时遇到 403 Forbidden 错误,通常表示当前用户的权限不足以访问目标仓库。以下是可能原因及其解决方案: #### 可能原因一:身份验证失败 如果远程仓库配置为私有库,则需要通过 SSH 密钥或 HTTPS 凭证进行身份验证。如果没有正确设置密钥或者凭证过期,可能会导致此错误。 - **SSH 配置问题**: 如果使用的是基于 SSH 的 URL (`git@github.com:user/repo.git`),需确认本地已生成并上传公钥至对应的代码托管平台[^3]。 ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 随后将生成的 `.ssh/id_rsa.pub` 文件中的内容复制粘贴到 GitHub/GitLab 等账户的安全设置下的 SSH Keys 页面中。 - **HTTPS 登录失效**: 若采用 HTTPS 方式(`https://github.com/user/repo.git`)推送数据,可能是由于密码更改或其他因素造成缓存凭据不再有效。此时可以尝试重新存储新的认证信息: ```bash git credential-cache exit ``` 接着再次运行 `git pull/push` 操作会提示输入用户名和新密码/个人令牌(Personal Access Token)[^3]。 #### 可能原因二:缺乏写入权限 即使能够克隆(clone)某个项目下来,也不代表拥有修改(push)它的权利。只有被授予相应级别的成员资格(如 Collaborator),才允许向特定分支提交改动请求。 检查是否有足够的权限可以通过查看 Repository Settings -> Manage access 来完成。如果没有合适的角色分配给开发者账号的话,联系管理员申请更高的操作许可成为必要步骤之一[^3]。 #### 解决方案总结 综上所述,针对上述两种常见情况分别采取措施即可解决问题: 1. 对于因缺少有效的身份证明而引发的情况,应按照指导完善相关联结; 2. 当发现是因为权限不足所引起的时候,则要寻求团队领导帮助调整相应的设定值。 ```python import os from git import Repo repo_path = '/path/to/local/repo' remote_url = 'https://username:personal_access_token@github.com/user/repo.git' try: repo = Repo(repo_path) origin = repo.remote(name='origin') origin.set_url(remote_url) except Exception as e: print(f'Error occurred while setting remote url: {e}') finally: pass ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

火兰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值