请不要在未阅读完整问题的情况下将其标记为重复项。
当我尝试将代码推送到我们的存储库时,出现以下错误:
我尝试在网络上搜索这个问题,发现了令人惊叹的资源,但没有确切的解决方案。有很多类似的问题,但我没有找到明确的讨论或正确的解决方案。
我提到了这个问题。 我还研究了那些提供相应答案的答案和参考文献。
我按照这个answer的建议增加了缓冲区大小,但对我不起作用。
我按照这个answer的建议将HTTP版本从HTTP/2降级到HTTP/1.1,它对我有用。
我提到了一条评论,他提到为什么我们要将 HTTP 版本从 HTTP/2 降级到 HTTP/1.1。我不明白他的评论。下面是他的评论。
在回复有关降级到 HTTP/1.1 的问题时,OP 发布的错误消息指出了 HTTP/2 的问题; OP 无法控制的东西(代理、GIT 服务器等)很可能无法与 HTTP/2 很好地配合。在这个问题得到解决之前,降级到 HTTP/1.1 是一个有效的解决方法。
所以我的问题是
所以我的问题是
- 为什么我们要把HTTP版本从HTTP/2降级到HTTP/1.1?
我们不应该——但请参阅下文。
- 为什么增加缓冲区大小解决方法并不适合所有人?
这应该也是没有必要的。
这里可能存在几个不同的问题,但如果您的网络连接从根本上来说是健全的(并非全部如此),那么 HTTP 或 HTTPS 协议问题的常见来源是某种中间件盒,例如试图阻止访问未经批准的过滤器主机,过滤不正确。也就是说,您尝试直接连接到,例如,
github.com
,但不是连接到github.com
,而是连接到某个公司服务器。企业服务器检查 Web 请求,决定是允许还是拒绝它,并在决定允许后,与 github.com
建立自己的连接,然后开始中继流量。
问题是这个进行中继的中间件服务器破坏了数据。
正确的修复是修复或删除中间件服务器。其他任何事情都只是一种解决方法。如果电话中继接线员鲍勃总是告诉您苏珊不在办公室,即使她在办公室,您也不会再向鲍勃询问苏珊的情况。相反,您要求鲍勃将您与她的同事苏西联系起来。鲍勃现在将您连接到苏珊(她的名字显然也叫苏西),您就可以完成工作了。这并不意味着每个人都必须叫她苏西,事实上,只要鲍勃叫她苏西,你的朋友,他的电话通过弗雷德而不是鲍勃,不能要求苏西:那就赢了不和弗雷德一起工作。 由于计算机中继比混乱的电话接线员更复杂,因此使用
ssh://
URL 可能比使用
http://
或 https://
URL 更成功。但是任何适合您的解决方法,让您克服数据损坏问题,都可以适合您。它可能对其他人不起作用,但这无论如何都不是正确的解决方案。正确的解决方法是拆除或更换损坏的过滤器/继电器。