我在代理后面使用msysgit。正如我所说的Getting git to work with a proxy server
我已将系统变量http_proxy
设置为值。后来我打电话给
git config --global http.proxy $http_proxy
但是,如果我打电话给:
git clone git://git.savannah.gnu.org/gnuprologjava.git
它出现以下错误:
git.savannah.gnu.org[0; 140.186.70.72]: errno=No error
fatal: unable to connect a socket (No error)
答案 0 :(得分:23)
如果你在http代理后面,你应该使用http git urls。 Savannah.gnu.org上的UsingGit页面告诉您正确的语法。对于那个回购:
git clone http://git.savannah.gnu.org/r/gnuprologjava.git
答案 1 :(得分:7)
当您使用Linux时,请参阅this page。
在Windows上我已经解决了这个问题;
安装Cygwin,然后选择socat包。创建一个脚本gitproxy.cmd并将其保存在路径中(我使用C:\ msysgit \ cmd \ gitproxy.cmd):
@echo off
C:\cygwin\bin\socat.exe - PROXY:192.168.100.1:\%1:\%2,proxyport=3128
(用您自己的代理IP /端口替换192.168.100.1和3128)
执行以下行以配置代理:
git config --global core.gitproxy gitproxy.cmd
请注意,代理服务器必须接受git端口的CONNECT命令(9418)。我已将以下行添加到squid配置中以使其工作:
acl SSL_ports port 9418 # git
acl Safe_ports port 9418 # git
(即配置端口9418的方式与代理服务器中的端口443相同)
答案 2 :(得分:3)
许多人都回答了这个问题,但这仅适用于使用身份验证代理的 Windows 用户。
重新安装(首先失败,不要删除)。
Go to:
1. msysgit\installer-tmp\etc\gitconfig
Under [http]
proxy = http://user:pass@url:port
2. msysgit\installer-tmp\setup-msysgit.sh
export HTTP_PROXY="http://USER:PASS@proxy.abc.com:8080"
如果您在用户/通行证使用url_encode
中有任何特殊字符选项2: 设置环境变量
HTTP_PROXY = http://proxy.com:8080