无法连接到git远程仓库

43

执行git push -u origin master后,我得到了:

fatal: unable to access 'https://github.com/xxxx/xxxx.git': Failed to connect to 127.0.0.1 port 8087: Connection refused

我尝试克隆其他存储库时也出现了同样的错误。

端口8087似乎没有被占用。可能出了什么问题?

编辑:当我使用git://而不是https://进行克隆时,它能正常工作。


你找到解决方案了吗?我也遇到了同样的错误,请帮帮我。 - Harin Kaklotar
1
Laurent和Liao的回答真的很有帮助。供您参考,.gitconfig文件通常位于您用户名的根文件夹下,例如C:\ Users \ Zengxiaoyu。 - Xiaoyu Zeng
5个回答

82

这是因为git中配置了代理。

由于是https代理(而不是http),git config http.proxygit config --global http.proxy都无法帮助解决问题。

1:查看您的git配置

git config --global -l

如果您与https代理无关,例如https_proxy=...,那么问题不在这里。

如果您与https代理有关,请从文件~/.gitconfig中删除它,然后重试。

2:如果仍然无法正常工作,请取消设置环境变量。

检查您的环境变量:

env|grep -i proxy  

您应该有一行或多行包含 https_proxy=... 的内容。

依次使用以下方法取消设置: unset https_proxy (变量名称可能为 HTTPS_PROXY)

3:再次检查环境变量

env|grep -i proxy

如果没有显示任何内容,说明已经恢复了原样。

注意:此解决方案适用于 HTTP 和 HTTPS 代理问题。只需要将变量名称从 https 更改为 http 即可。


2
我非常感激你。 - Mohsen Zahedi
我最近在Ubuntu上使用了Fiddler,它添加了所有的HTTP、HTTPS和FTP代理,让我的生活变得更加困难。由于这个原因,git pull在8888端口上连接错误而失败。在遵循这个方法并删除那些环境变量后,我成功解决了问题。你救了我的一天!非常感谢。谢谢! - Ravindra Ranwala
如果我们不使用SSH,则不需要代理设置,这对我很有用,我只是从git配置中删除了代理。谢谢。@Laurent - satish

20

git config --global --unset http.proxy


7

Laurent的回答对我很有帮助。(我在公司防火墙后面。)

  • 我在.gitconfig文件中删除了代理设置。

  • 一切都运行正常,我可以从远程仓库克隆。

  • 当我想要推送到远程仓库时,我生成了一个ssh密钥。然后我就能够推送了。

希望这可以为某些人节省2个小时。


3

看起来git尝试使用本地代理。

请检查全局网络设置和git的设置。

使用git config http.proxygit config --global http.proxy获取git的代理设置。


1
我已经尝试了上述所有方法,但除了他们提到的内容外,我还错过了一些东西。
尝试在“控制面板 - 用户帐户 - 凭据管理器”中更新您的Git凭据,这对我有用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接