当你在HTTPS上推送时,会有一个请求,它是你推送的数据,还有一个响应,它包含一个状态码和一个正文(对于Git请求,它包含消息)。如果您推送数据,远程端接受数据,但从未成功发送响应,或者如果响应被网络问题或干预系统中断,那么Git无法知道您的请求是否成功。
在这种情况下,响应指示消息在读取边带响应的中间被中断,这意味着假设远程端确实完成了它的处理是不安全的。Git因此做了正确的事情,在这里失败了。
请注意,有一些可能的原因。如果你上传的是大量压缩不好的二进制文件,那么Git可能会合法地花费大量时间解包这些对象,并且可能无法及时发送边带数据包来保持连接。理想情况下,您不会在Git存储库中存储很多大型二进制文件,因为这对它们不是很好的用途,但您可以尝试SSH,使用keepalives,SSH可以让连接持续足够长的时间以完成连接。不过,您不应该将Git用作备份或归档解决方案,或者作为工件存储。
您的连接也可能确实存在一些网络问题(包括由代理、非默认防病毒或防火墙或TLS middlebox引起的问题),在这种情况下,您需要修复所述问题(或卸载或删除所述软件或设备)。有时联系也会减少。