如何让Git使用代理服务器?
我需要从Git服务器签出代码,但它每次都显示“请求超时”。我该怎么解决这个问题呢?
或者如何设置代理服务器?
如何让Git使用代理服务器?
我需要从Git服务器签出代码,但它每次都显示“请求超时”。我该怎么解决这个问题呢?
或者如何设置代理服务器?
当前回答
我遵循了这里推荐的大部分答案。首先,我得到了以下错误:
致命:无法访问 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
其他回答
对于git协议(git://…),安装socat并编写如下脚本:
#!/bin/sh
exec socat - socks4:your.company.com:$1:$2
使其可执行,将其放在您的路径和~/中。Gitconfig set core。Gitproxy到该脚本的名称。
在不知疲倦地尝试这个页面上的每个解决方案后,我的工作是使用SSH密钥代替!
打开Git Bash ssh-keygen.exe -t rsa -C 打开你的Git提供商(Github, Bitbucket等) 添加复制id_rsa。pub文件内容到Git提供者的输入页面(检查您的配置文件)
如果配置代理服务器的命令行方式不起作用, 你可能只需要编辑.gitconfig(在你的配置文件的根目录中,它可能隐藏在C:\Documents and Settings和一些网络驱动器中)并添加以下内容:
[http]
proxy = http://username:password@proxy.at.your.org:8080
但是,YMMV只包含命令行配置的第一步。你可能也需要编辑系统git配置,我不知道他们把它藏在哪里。
使用命令:
git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
将proxyuser更改为代理用户 将proxypwd更改为您的代理密码 将proxy.server.com更改为代理服务器的URL 将8080更改为代理服务器上配置的代理端口
注意,这适用于http和https回购。
如果你决定在任何时候重置这个代理并在没有代理的情况下工作:
使用命令:
git config --global --unset http.proxy
最后,检查当前设置的代理:
git config --global --get http.proxy
我已经尝试了以上所有的答案,但都不适合我,因为有一个代理密码编码问题。
这个命令起作用了:
git config --global http.proxy http://username@proxy.example.com:PortNumber
请不要在命令中输入密码。当你尝试连接到任何git repo时,它会动态地询问。