我在代理后面使用msysgit.正如我所说的那样,让git与代理服务器一起工作
我已将系统变量http_proxy设置为值.后来我打电话
git config --global http.proxy $http_proxy
Run Code Online (Sandbox Code Playgroud)
但是,如果我打电话给:
git clone git://git.savannah.gnu.org/gnuprologjava.git
Run Code Online (Sandbox Code Playgroud)
它给出以下错误:
git.savannah.gnu.org[0; 140.186.70.72]: errno=No error
fatal: unable to connect a socket (No error)
Run Code Online (Sandbox Code Playgroud)
Mat*_*Mat 23
如果你在http代理后面,你应该使用http git urls.Savannah.gnu.org上的UsingGit页面告诉您正确的语法.对于那个回购:
git clone http://git.savannah.gnu.org/r/gnuprologjava.git
Run Code Online (Sandbox Code Playgroud)
当您使用Linux时,请参阅此页面.
在窗户上,我已经解决了这个问题;
安装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
Run Code Online (Sandbox Code Playgroud)
(用您自己的代理ip/port替换192.168.100.1和3128)
执行以下行以配置代理:
git config --global core.gitproxy gitproxy.cmd
Run Code Online (Sandbox Code Playgroud)
请注意,代理服务器必须接受git端口的CONNECT命令(9418).我已将以下行添加到squid配置中以使其工作:
acl SSL_ports port 9418 # git
acl Safe_ports port 9418 # git
Run Code Online (Sandbox Code Playgroud)
(即配置端口9418的方式与代理服务器中的端口443相同)