微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

git clone 报错remote:Access denied The requested URL returned error:403

git clone project_URL命令向远程仓库克隆项目时遇到报错403

 

 

 error 403是服务器拒绝了终端的访问,是账户密码的问题,可是在客户端没有弹出需要输入账户密码的弹窗。是因为git客户端缓存了错误的密码。

 https协议方式每次都要输入密码,git 客户端可以设置缓存密码,这样可以不需要每次克隆都输入密码

1、设置记住密码(认15分钟)

 

 

 

  1 git config --global credential.helper cache 

2、设置其他时间(例如1小时)

 1 git config credential.helper 'cache --timeout=3600' 

3、长期存储密码

 1 git config --global credential.helper store 

 

可能是当初设置了长期存储密码(是客户端所在的电脑,即使重装git,密码也存在)保存的账户密码会自动应用到每一个git clone命令,所以导致现在没有弹出输入账户密码的窗口,但是以前保存的密码又和现在的账户对不上或者如今要克隆的不是以前账户下的项目,就会报403错误

解决如今的问题方法如下:

方法一、把账户密码的信息添加到你要克隆的项目URL中

 1 git clone http://username:password@gitee.com/name/projectname.git 

注意:如果username或者password中有特殊字符例如@、$要把它们转为url编码

 

 

例如 利用python urllib库的parse

1 from urllib import parse
2 print(parse.quote_plus('@'))
3 print(parse.quote_plus('$'))

运行结果:

 

 

 把账户密码中的‘@’,‘$’替换为‘%40’,‘%24’,重新输入git clone url 命令,clone成功

 

 

 下次再克隆该账户的项目的时候,不再需要在url中添加账户和密码了,因为这种方式会把账户密码添加到~/.git-credentials

 

 

方法二:

运行命令:rm ~/.git-credentials,删掉git config --global credential.helper store保存的账号和密码。回到每次输入用户名和密码。

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐