git clone无法解析代理

时间:2012-04-26 12:54:06

标签: git

当我尝试从git克隆

git clone "http://github.com/symfony/symfony.git" "d:/www/a/vendor/symfony"

我收到错误

Cloning into 'd:/www/a/vendor/symfony'...
error: Couldn't resolve proxy '(null)' while accessing http://github.com/symfony/symfony.git/info/refs
fatal: HTTP request failed

我直接连接到互联网(没有代理)。我试图关闭防火墙并没有帮助。我在Windows上,只是从http://code.google.com/p/msysgit/downloads/list安装了Git-1.7.10-preview20120409.exe。以前我有1.7.8,这个命令工作。我也重新安装了TortoiseGit,但我认为没关系。

我的C:\Documents and Settings\xxx\.gitconfig文件是

[http]
    proxy = 
[user]
    name = xxxx
    email = xxx@example.com

12 个答案:

答案 0 :(得分:100)

似乎在邮件列表中报告了问题。 this有帮助吗?

git config --global --unset http.proxy

答案 1 :(得分:6)

在推开防火墙后,我遇到了同样的问题。

问题不是空的http_proxy var(git var -l没有显示任何代理变量),我的操作系统环境变量包括:

http_proxy=username:passowrd@proxy.company:port
https_proxy=username:passowrd@proxy.company:port
no_proxy=.company

此设置将始终触发:

error: Couldn't resolve proxy '(null)' while accessing https://...

但是,一旦我更改了代理变量,在代理地址前添加“http://”,错误消息就会停止

http_proxy=http://username:passowrd@proxy.company:port
https_proxy=http://username:passowrd@proxy.company:port
no_proxy=.company

(请注意“http://”即使是https代理地址)

答案 2 :(得分:5)

只需删除

即可
 [http]
     proxy =

为我工作

答案 3 :(得分:4)

在git bash中运行以下命令

git config --global --unset http.proxy

注意:不要忘记重新启动git bash,否则它将无法正常工作。

还要确保删除HTTPS_PROXY和HTTP_PROXY环境变量。

如果上述步骤对您不起作用,请尝试设置公司代理,如下所示;

git config --global  http://example.com:8080
git config --global  https://example.com:8080

**使用您的公司代理和端口更改example.com/8080

答案 4 :(得分:4)

我有两个工作环境,当我在公司和我在家时。因此,每天我都必须设置和取消设置代理变量以使我的git运行。我发现有效的是创建两个bash文件,一个用于设置代理变量,另一个用于" unsetting"它。因此,无论何时我到家或在工作,我所要做的就是双击具有管理员权限的文件,我已经完成了。文件非常简单:

<强>未设置-proxy.bat

setx HTTP_PROXY ""
setx HTTPS_PROXY ""
setx HTTP_PROXY "" /M
setx HTTPS_PROXY "" /M
git config --global --unset http.proxy
git config --global --unset https.proxy
sleep 5

设置-proxy.bat

setx HTTP_PROXY <your proxy here>
setx HTTPS_PROXY <your proxy here>
setx HTTP_PROXY <your proxy here> /M
setx HTTPS_PROXY <your proxy here> /M
git config --global <your proxy here>
git config --global <your proxy here>
sleep 5

最后的sleep 5只是让窗口打开几秒钟,以验证所有命令是否正确运行。

答案 5 :(得分:2)

感谢@VonC的回答。

尽管这对您有帮助,但我还是以您的答复为参考来解决。

我已经在下面的环境变量中配置了解决Cloud Foundry开发环境问题之一。我的git clone突然间发出警报,说无法解析代理。我刚刚删除了这些环境变量,并且git clone运行良好。

http_proxy=proxy.company:port
https_proxy=proxy.company:port

希望有帮助。

答案 6 :(得分:1)

只需删除

即可
 [http]
     proxy = 

阻止Git全局配置文件。 (git版本1.7.10.msysgit.1,windows XP)

正电子答案中提到的命令行命令不起作用:

 git config --global --unset http.proxy

 error: unknown switch `â'

答案 7 :(得分:0)

代理应以“http”或“https”

开头

e.g。

abc.proxy.com:8080 may not work
http://abc.proxy.com:8080 should work

答案 8 :(得分:0)

我在CentOS 6.5上运行git时遇到了同样的问题。在Ubuntu上运行相同的命令工作得很好。 Git似乎与网址中的冒号有问题。无论如何,解决方案最终是我必须在url中明确指定端口,例如:

git clone https://example.edu.au:443/git/master.git

答案 9 :(得分:0)

键入以下命令。

  1. git config --global http.proxy example.com:8080

    此处,example.com是代理服务器,8080是端口号。

  2. 请参阅您已设置代理服务器。

  3. 然后,克隆所需的存储库。它会起作用。

  4. 我在Windows中试过这些。

答案 10 :(得分:0)

出现此错误是因为您使用了代理。即使将Proxy设置添加到PC,也会出现一些错误。因为更改系统设置不足以实现GIT。因此,您应该为代理配置git。

 $r = array_merge(json_decode($a,true), json_decode($b,true));
 echo json_encode($r);

此处proxyUsername是您使用的用户名,proxyPassword是其密码。 proxy.server.com表示代理服务器名称,而port是用于代理的端口。 如果您使用特定的域,请使用以下代码:

git config --global http.proxy http://proxyUsername:proxyPassword@proxy.server.com:port

答案 11 :(得分:0)

在Ubuntu上使用此命令时,请以'sudo'开头的'git clone'来获得管理权限

ex-:sudo git clone“ http://github.com/symfony/symfony.git”“ d:/ www / a / vendor / symfony”