如何让Git使用代理服务器?
我需要从Git服务器签出代码,但它每次都显示“请求超时”。我该怎么解决这个问题呢?
或者如何设置代理服务器?
如何让Git使用代理服务器?
我需要从Git服务器签出代码,但它每次都显示“请求超时”。我该怎么解决这个问题呢?
或者如何设置代理服务器?
当前回答
作为使用git配置的替代方案——global http。代理地址:端口,可以在命令行设置代理:
git -c "http.proxy=address:port" clone https://...
优点是代理不需要持久设置。在Bash下你可以设置一个别名:
alias git-proxy='git -c "http.proxy=address:port"'
其他回答
我在公司使用Windows XP,所以我做了我的研究,在这里发现了这个,它对我有用。希望这对你有所帮助。
http_proxy环境变量
如果您使用代理服务器或防火墙,您可能需要设置http_proxy环境变量以便从命令行访问一些url。 例如:为perl安装ppm或在linux中应用rpm,更新ubuntu
将http_proxy变量设置为代理服务器的主机名或IP地址: http_proxy = http:// [proxy.example.org]
如果代理服务器需要用户名和密码,请以以下形式填写: http_proxy = http://(用户名:password@proxy.example.org)
如果代理服务器使用的端口号不是80,请填写端口号: http_proxy = http://(用户名:password@proxy.example.org: 8080)
Windows XP
打开控制面板并单击系统图标。 在“高级”选项卡上,单击“环境变量”。 单击“系统变量”面板中的“新建”。 添加带有适当代理信息的http_proxy(参见上面的示例)。
Linux、Solaris或HP-UX
使用特定于shell的命令(例如Set或export)设置http_proxy环境变量。要使此更改持久,请将该命令添加到shell的适当概要文件中。例如,在bash中,在.bash_profile或.bashrc文件中添加如下一行:
http_proxy = http://(用户名:password@hostname:端口); 出口美元http_proxy
我遵循了这里推荐的大部分答案。首先,我得到了以下错误:
致命:无法访问 https://github.com/folder/sample.git/':频道:下一个 InitializeSecurityContext失败:未知错误(0x80092012) 属性的撤销功能无法检查 证书。
然后我尝试了@Salim Hamidi的以下命令
git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
但我得到了以下错误:
致命:无法访问 'https://github.com/folder/sample.git/':接收到的HTTP代码 407从代理连接后
如果代理服务器无法验证SSL证书,就会发生这种情况。所以我们想要确保ssl验证是关闭的(不推荐用于不受信任的站点),所以我已经完成了以下步骤,这是@Arpit推荐的,但略有变化:
1.首先确保删除之前的所有代理设置:
git config --global --unset http.proxy
2.然后列出并获取gitconfig内容
git config --list --show-origin
3.最后更新gitconfig文件的内容如下:
[http]
sslCAInfo = C:/yourfolder/AppData/Local/Programs/Git/mingw64/ssl/certs/ca-bundle.crt
sslBackend = schannel
proxy = http://proxyuser:proxypwd@proxy.server.com:8080
sslverify = false
[https]
proxy = http://proxyuser:proxypwd@proxy.server.com:8080
sslverify = false
尝试将以下内容放到~/。gitconfig文件:
[http]
proxy = http://proxy:8080
[https]
proxy = http://proxy:8080
[url "https://"]
insteadOf = git://
我已经尝试了以上所有的答案,但都不适合我,因为有一个代理密码编码问题。
这个命令起作用了:
git config --global http.proxy http://username@proxy.example.com:PortNumber
请不要在命令中输入密码。当你尝试连接到任何git repo时,它会动态地询问。
对于windows用户:如果git配置或设置http_proxy=不起作用,这个答案可能会有帮助:
将git存储库的git://协议替换为http://.注意,无论如何,你必须先设置http_proxy。