社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

Git声称,当源站按预期接收到它时,它无法推送

Kirna • 3 年前 • 1245 次点击  

我注意到我的Github操作失败了,尽管实际输出很好,所以我检查了日志,发现git抛出了以下错误:

+ git push origin master
error: RPC failed; curl 56 OpenSSL SSL_read: Connection timed out, errno 110
send-pack: unexpected disconnect while reading sideband packet
fatal: the remote end hung up unexpectedly
Everything up-to-date

问题是,实际的推动 经过在Github上查看,当日志显示推送失败时,我看到存储库中出现了成功的输出。为什么git声称它无法推送,而我可以看到存储库中的输出?由于git抛出了这个错误,Github认为我的操作失败了,所以它通过电子邮件向我发送了相关信息并抛出了错误,所以我的监控软件提醒我一个关键工作流失败了。可能很重要的一点是,我正在使用这个repo来承载高达100MB的二进制文件,我有很多这样的文件。有人能帮我解决这个问题吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/131803
 
1245 次点击  
文章 [ 1 ]  |  最新文章 3 年前
bk2204
Reply   •   1 楼
bk2204    4 年前

当你在HTTPS上推送时,会有一个请求,它是你推送的数据,还有一个响应,它包含一个状态码和一个正文(对于Git请求,它包含消息)。如果您推送数据,远程端接受数据,但从未成功发送响应,或者如果响应被网络问题或干预系统中断,那么Git无法知道您的请求是否成功。

在这种情况下,响应指示消息在读取边带响应的中间被中断,这意味着假设远程端确实完成了它的处理是不安全的。Git因此做了正确的事情,在这里失败了。

请注意,有一些可能的原因。如果你上传的是大量压缩不好的二进制文件,那么Git可能会合法地花费大量时间解包这些对象,并且可能无法及时发送边带数据包来保持连接。理想情况下,您不会在Git存储库中存储很多大型二进制文件,因为这对它们不是很好的用途,但您可以尝试SSH,使用keepalives,SSH可以让连接持续足够长的时间以完成连接。不过,您不应该将Git用作备份或归档解决方案,或者作为工件存储。

您的连接也可能确实存在一些网络问题(包括由代理、非默认防病毒或防火墙或TLS middlebox引起的问题),在这种情况下,您需要修复所述问题(或卸载或删除所述软件或设备)。有时联系也会减少。