Git 克隆无法解析代理

  • 本文关键字:代理 Git 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 Settingsxxx.gitconfig文件是

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

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

git config --global --unset http.proxy

在 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

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

问题不在于空的 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代理地址也是如此)

只需删除

 [http]
     proxy =

为我工作

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

未设置代理.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

设置代理.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只是使窗口保持打开几秒钟,以验证所有命令是否正确运行。

感谢@VonC的回答。

虽然它对我不起作用,但我用你的答案作为参考来变通。

我配置了以下环境变量来解决云铸造厂开发环境问题之一。突然间,我的 git 克隆发出警报,说无法解析代理。我刚刚删除了这些环境变量,git 克隆运行良好。

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

希望有帮助。

只需删除

 [http]
     proxy = 

块在 Git 全局配置文件中。(git version 1.7.10.msysgit.1 , windows XP)

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

 git config --global --unset http.proxy
 error: unknown switch `â'

键入以下命令。

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

    在这里,example.com是代理服务器,8080是端口号。

  2. 查看您已设置代理服务器。

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

我在Windows中尝试了这些。

首先尝试重置 Github 代理。有时可能是代理服务器有问题。

git config --global --unset http.proxy

然后重新启动终端并再次尝试克隆存储库。

如果仍然收到错误,则必须尝试使用以下命令设置代理。

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

代理应以"http"或"https"开头

例如

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

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

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

此错误是因为您使用的代理。即使您将代理设置添加到您的 PC 也会有一些错误。因为系统设置的改变对GIT来说是不够的。所以你应该为代理配置 git。

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

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

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

当你在 Ubuntu 上使用此命令时,使用 'sudo' 在乞求 'git clone' 时获得管理权限

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

为了激活/停用 git 的代理,我在 ~/.bashrc 中使用了两个 shell 函数:

proxy_set() {
    export http_proxy=http://PROXYADDR:PORT/
    export https_proxy=https://PROXYADDR:PORT/
    export socks_proxy=socks://PROXYADDR:PORT;
    sed -i '/proxy =/s/^#//g' ~/.gitconfig
}
proxy_unset() {
    unset http_proxy; unset https_proxy; unset socks_proxy;
    sed -i '/proxy =/s/^#*/#/g' ~/.gitconfig
}

这些将分别取消注释/注释 ~/.gitconfig 中的 [http] 和 [https] 代理条目。只需输入终端,proxy_set或proxy_unset

即可。

最新更新