如下图所示,当我试图克隆别人的repo时,会发生这样的错误,当我从git:/而不是https://,克隆时,它工作得很好。
发生这种情况是因为代理是在git中配置的。既然它是https代理(而不是http)git config http.proxy和git config --global http.proxy也无济于事。
如果你没有任何与https代理相关的内容,例如https_proxy = ...问题不在这里。
如果您有与https代理相关的内容,请将其从〜/ .gitconfig文件中删除,然后重试。
env|grep -i proxy
你应该有一行或几行https_proxy = ...
使用以下内容逐个取消设置:取消设置https_proxy(或HTTPS_PROXY,具体取决于变量的名称)
env|grep -i proxy
如果它没有显示任何你应该是好的。
注意:此解决方案可以应用于http和https代理问题。只是变量名称从https更改为http。
在开启shadowsocks的前提下,手动配置git的代理。git客户端输入如下两个命令就可以了。
git config --global http.proxy http://127.0.0.1:1080
git config --global https.proxy http://127.0.0.1:1080
http://也可以改成sockets5://,但是区别在于:socks5不支持通过pubkey免密登录github,每次提交代码只能输入用户名和密码。http可以支持免密登录。
取消代理:
git config --global --unset http.proxy
git config --global --unset https.proxy
其实方案一和方案二是同一种方法,不过方案二更加具体一点罢了,大部分问题都可以用方案二解决,当方案二无效时,考虑使用方案一。
参考文献: