我是GIT和GitHub的新手,我觉得我有一些配置问题。
昨天我已经正确配置了本地GIT和我的GitHub帐户之间的SSH连接。它工作正常。
今天我去办公室,我在代理下并使用同一台笔记本电脑,我尝试将远程存储库(在我的GitHub帐户上)克隆到我的本地存储库。
代理在我的GIT上正确设置,实际上是:
$ git config --global http.proxy
http://XX.YY.ZZ.AAA:3228
这是我用于在Internet上导航的相同代理,我已将其设置为浏览器设置。
问题是,当我尝试将GitHub上的存储库克隆到我的本地存储库时,我收到此错误消息:
$ git clone git@github.com:AndreaNobili/recipes.git
Cloning into 'recipes'...
ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.
如果我使用智能手机连接(不在代理服务器下)连接到Internet,则可以正常工作。
为什么呢?我错过了什么?
TNX
答案 0 :(得分:1)
虽然您已配置了http代理,但您尚未指示Git使用http - 您已指定应使用ssh进行连接:
$ git clone git@github.com:AndreaNobili/recipes.git
事实上,您的错误消息是ssh超时:
ssh: connect to host github.com port 22: Connection timed out
这是因为您有阻止连接的防火墙。相反,将存储库指定为HTTP URL,Git将使用您已配置的公司代理:
$ git clone https://github.com/AndreaNobili/recipes.git
答案 1 :(得分:0)
您需要将环境变量设置为http_proxy
curl
,而libcurl
似乎无法识别大写变量HTTP_PROXY
。
This link详细阐述了这一点:
不再允许/理解使用全部大写字母的变量“HTTP_PROXY” (实际上是7.7.2)。
原因如下: 当CGI脚本从Web服务器中执行时,它们通常会得到 在执行脚本之前设置的环境变量。标题在 激活脚本的传入请求将转换为名为的变量 HTTP_ [标题]。
所以,如果有人写了一个CGI脚本,反过来又使用curl,你可以 实际上通过传递'代理来欺骗curl来使用你选择的http代理: [yada yada]'标题。
另一方面,使用小写的http_proxy'完全可以理解 卷曲。