GitLab The requested URL returned error: 502
背景
在阳光明媚的一个上午,我点击了 git pull ,发生了报错...
报错语句:unable to access 'http://gitlab.../xxx.git/': The requested URL returned error: 502
之前也发生过一次这种情况,可能是网络不稳定导致请求超时的问题,尝试了去掉代理下载代码 unset http_proxy、unset https_proxy 和 git bash 里面执行 for((i=10;i<=200;i=i+10));do git fetch --depth=$i;done 都没有生效(也可能是我执行的姿势不对,感兴趣的小伙伴可以尝试一下),于是改变 clone 代码的方式。
我原本是使用 clone with http,怀疑因为这个方式才跟网络有关。
本篇的解决办法是改变 clone 代码的方式,如果使用 TortoiseGit 发生报错:No supported authentication methods available (server sent: publickey) 也使用下面的方法解决。
clone with ssh 和 clone with http 的区别
HTTP:不管是谁,拿到 url 就可以随便 clone,但是在 push 的时候需要验证用户名和密码;
SSH:clone 的项目你必须是拥有者或者管理员,而且 clone 之前需要添加 SSH key。
生成 SSH key
1、打开 PuTTYgen
打开开始菜单,点击 TortoiseGit 下面的 PuTTYgen 。
2、点击 Generate,生成钥匙
3、保存公钥和私钥到本地
点击 Save public key 保存公钥,
点击 Save private key 保存私钥。
注:Key passphrase 是设置密码,Confirm passphrase 是确认密码。
保存的格式,位置可以自选。
4、将公钥放到 gitLab 账号上
路径:点击头像,选择 Edit profile,选择左侧的SSH keys,将生成的公钥复制进去,点击 Add key 即可。
如果是 git ,路径:点击头像,选择 Settings,点击左侧列表的 SSH and GPG keys,点击 New SSH key,然后将公钥复制进去,保存即可。
5、设置本地 TortoiseGit 私钥
6、修改 clone 方式
在项目的 .git 文件夹中,打开 config 文件。
将 url 由 http://gitlab.../xxx.git 改为 ssh://git@gitlab.../xxx.git 即可。
完成以后设置,就可以随意 git pull 了!
总结
仍然怀疑使用之前报错的原因是网络问题,因为之前都是好用的,可能最近公司的网络不太稳定。
502 是网关、服务器方面的报错码。
502原因
错误的原因找到了,是 TortoiseGit 配置192.168.2.254的代理挂了,把 Enable Proxy Server 关闭保存就可以了。
更多推荐
所有评论(0)