如何解决" git pull,致命:无法访问' https://github.com ... \':来自服务器的空回复"

时间:2014-11-23 09:33:06

标签: git github

当我使用Git命令“git pull”来更新我的存储库时,它失败了,消息如下: 致命:无法访问'...':来自服务器的空回复。

我尝试使用GitHub应用程序,但请注意:

Cloning into 'renren_mobile'...
warning: templates not found /Applications/GitHub.app/Contents/Resources/git/templates
2014-11-23 13:58:57.975 GitHub for Mac Login[659:11891] AskPass with arguments: (
    "/Applications/GitHub.app/Contents/MacOS/GitHub for Mac Login",
    "Username for 'https://github.com': "
)
2014-11-23 13:58:58.032 GitHub for Mac Login[660:11915] AskPass with arguments: (
    "/Applications/GitHub.app/Contents/MacOS/GitHub for Mac Login",
    "Password for '': "
)
fatal: unable to access '...': Empty reply from server
 (128)

19 个答案:

答案 0 :(得分:28)

我解决了这个问题。我认为这可能是因为https,但我不太确定。 您可以将远程URL从HTTPS切换到SSH。

1.请参阅此链接了解详情:https://help.github.com/articles/changing-a-remote-s-url/

我还必须配置ssh密钥。

2.遵循:https://help.github.com/articles/generating-ssh-keys/

我遇到这个问题是因为我更换了我的mac,但我做了数据传输,我认为这可能是因为关键原因。

答案 1 :(得分:22)

我遇到了这个问题,直到我注意到我没有登录我的VPN。

说明:

1)如果您已为VPN配置代理,则需要登录VPN才能使用代理。

2)在VPN外使用它使用unset命令:

  

git config --global --unset http.proxy

并记得在VPN内设置代理。

希望这条评论可以节省3个小时的时间,我毫无意义地试图阅读解决方法

答案 2 :(得分:16)

在Windows上:

转到Win - >控制面板 - >凭证管理器 - > Windows凭据

搜索github地址并将其删除。

enter image description here

然后尝试执行:

git push -u origin master

Windows会再次要求你提供你的git凭据,把它放到正确的位置。

答案 3 :(得分:8)

我尝试了一些没有运气的技巧。看起来我的终端模拟器(iTerm2)或会话缓存了一些东西。当我从一个新的终端选项卡运行命令时,问题就消失了。

答案 4 :(得分:2)

我用http替换了我的远程源的https部分解决了这个问题。这也是一种解决方法。我认为它可能会对将来有所帮助。

答案 5 :(得分:2)

尝试,这个

git config --global --unset http.proxy

git config --global --unset https.proxy

答案 6 :(得分:2)

如果使用

取消设置
For HS256, the API's Signing Secret is used. You can find this information at your API's Settings. Note that the field is only displayed for APIs that use HS256.

For RS256, the tenant's JSON Web Key Set (JWKS) is used. Your tenant's JWKS is https://YOUR_AUTH0_DOMAIN/.well-known/jwks.json.

不适合你。

然后检查是否设置了环境变量 http_proxy https_proxy 。使用此命令检查: -

`git config --global --unset-all https.proxy`

如果将此变量设置为某个值,则可以使用以下方法取消设置: -

`env | grep -i proxy`

答案 7 :(得分:1)

错误可能是,电脑已经保存了一个git用户名和密码,所以如果你切换到另一个帐户,就会出现403错误。下面是解决方案

在 Windows 中

您可以在此处找到密钥:

控制面板 > 用户帐户 > 凭据管理器 > Windows 凭据 > 通用凭据

接下来,删除 Github 密钥。

在苹果机

在 Finder 中,搜索 Keychain Access 应用程序 > 在 Keychain Access 中,搜索 github.com > 找到 github.com 的“互联网密码”条目 > 相应地编辑或删除该条目。

答案 8 :(得分:1)

我认为上述从Windows凭据管理器中删除git凭据的解决方案有效。基本上,它会与其他git凭据一起在缓存中获取。清除旧证书将为覆盖新证书铺平道路。

答案 9 :(得分:1)

我在这里尝试了大部分答案,但没有设法解决问题(在Windows 10上)。

解决问题的原因只是将版本从git version 2.8.1.windows.1升级到最新版本git version 2.10.1.windows.1

答案 10 :(得分:0)

您可以尝试逐步解决以下问题,其中一种应为您工作。

我尝试了所有三个步骤,但是第4步对我有用。因为我使用的是两个不同的git帐户

步骤1:

第2步

  • 如果您不在分支机构git branch上,请检查当前分支机构git checkout branch_name

  • 要创建新分支,请使用git checkout -b "new branch name" 使用上述命令打开新分支

第3步

  • 在特殊情况下,您将从用作模板的旧存储库开始创建新存储库(如果不是这种情况,请不要这样做)。完全清除旧存储库中的git文件,以便您可以开始一个新的:

    rm -rf .git并重复 STEP 1

第4步

  • 在Windows上,您可以尝试按照以下方式放置写入凭据或从控制面板中删除git凭据,然后重复 STEP 1

    转到Win->控制面板->凭据管理器-> Windows凭据

enter image description here

答案 11 :(得分:0)

我在将文件推送到我的私有bitbucket存储库时收到了相同的错误。由于一些奇怪的原因,无法发送请求,结果为空!我再次尝试使用代理隧道(您可以使用任何其他VPN应用程序),到现在为止已经解决了。

答案 12 :(得分:0)

如果您在Mac上并使用诸如iTerm2之类的终端仿真器,并且未给出任何响应,则可能是您尝试拉入项目的文件可能很大,这可能会花费一些时间。似乎由于某种原因,终端仿真器比在终端仿真器中花费的时间更多。因此,尝试在终端中执行命令,这可能会起作用。

答案 13 :(得分:0)

对于已编译自己的git的类似Ubuntu的发行版:您可能会缺少libcurl4-openssl-devapt install libcurl4-openssl-dev然后重新配置,然后进行安装

答案 14 :(得分:0)

我们有一个内部托管的git服务器(TFS),并且设置了代理环境变量(HTTP_PROXY和HTTPS_PROXY)。在工作了一段时间后,我突然开始收到此错误。

最后,我通过将服务器设置为 NO_PROXY 环境变量来修复它。

enter image description here

答案 15 :(得分:0)

然而,我遇到了同样的问题,安装了Jenkins。尝试克隆的反应始终是:

stderr: fatal: unable to access 'https://my.gitlab.server/group/repo.git/': Empty reply from server

不幸的是,切换到http并不是一个选项,所以我需要根本原因。事实证明,Jenkins用户的全局配置中有一个http设置(可能在我们在gitlab实例上运行自签名证书时添加)。看一下全局配置:

$ git config --global -l
http.sslverify=false

删除它可以解决问题

$ git config --global --unset http.sslverify

(看起来这也是一个拼写错误,键正确http.sslVerify

答案 16 :(得分:0)

我想您的git远程URL已设置为SSH。您可以将其设置为HTTPS:

git remote set-url origin https://github.com/YOUR_USERNAME/YOUR_REPOSITORY.git

重试此命令,并提示输入用户名和密码:

git pull

答案 17 :(得分:0)

我也面临着同样的问题,但是我的问题是由于keyChain中存储的凭据错误。因此,我通过从钥匙串中删除旧凭据解决了问题。

答案 18 :(得分:-1)

我解决了,取代了' http ..' git url with' ssh ..' 简单的打开.git / config文件并将其复制到那里