Git pull 或 push 提示:The requested URL returned error: 403
首先肯定是权限问题
以下均以giee界面操作讲解,中文界面描述方便一些,github同理。
前提
1、首先保证自己的账号拥有项目的访问权限(如果只需要拉取私有仓库的代码,可以在项目配置部署公钥,或者设置仓库成员身份为观察者)
-
项目访问权限配置:
配置自己账号为仓库成员,身份根据具体所需要的权限配置,配置完成即可保证该账号拥有项目对应的权限
-
项目配置部署公钥
将本地电脑用户文件夹下
.ssh
(windows:C:\Users{用户名}\.ssh;linux:cd ~/.ssh/)下的id_rsa.pub(公钥)拷贝到此处并添加配置部署公钥之后就可以通过ssh方式拉取代码
1、ssh操作
-
如果是配置了部署公钥
检查
windows:C:\Users\{用户名}\\.ssh;linux:cd ~/.ssh/
目录下的id_rsa.pub(公钥)内容是否与前提中提到的配置的公钥一致 -
如果是添加了自己为项目的成员
检查用户设置中的公钥是否与本地的公钥一致,点击公钥可以查看内容
2、https操作
https操作需要使用用户名密码进行访问
-
使用 git + https 操作项目,直接提示403,并没有让输入用户名密码
这种情况是开启了密码缓存
使用下面命令清除使用密码缓存的配置
git config --local --unset credential.helper git config --global --unset credential.helper git config --system --unset credential.helper
清除之后再次操作
此时应该会让输入用户名密码
-
输入账号的用户名密码可以正常访问(如果还是403,需要检查用户是否在项目的成员中,并且权限是否拥有),说明账号权限没有问题,之后的操作每次都会让输入用户名密码
配置为缓存密码
git config --global credential.helper store
之后的操作就不需要输入密码了
注意,如果配置完缓存密码之后又出现403,需要检查以下密码缓存是否正确
密码缓存在用户目录下的.git-credentials文件中,如果不确定是否正确可以删除,重新请求一次就会重新缓存了
评论区