Git 声称当源按预期收到它时无法推送
Git claiming it cannot push when the origin recieves it as expected
我注意到我的 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 的二进制文件,而且我有很多这样的文件。谁能帮我解决这个问题?
当您通过 HTTPS 推送时,会有一个请求(即您推送的数据)和一个包含状态代码和正文(对于 Git 请求,包含消息)的响应。如果您推送数据并且远程端接受了它,但从未成功发送响应,或者如果该响应被网络问题或干预系统中断,那么 Git 无法知道您的请求是否成功。
在这种情况下,响应表明消息在读取边带响应的过程中被中断,这意味着假设远程端确实完成了处理是不安全的。 Git 因此,在这里失败是正确的。
请注意,有一些可能的原因。如果您要上传大量压缩效果不佳的二进制文件,那么 Git 可能会合理地花费大量时间来解压缩这些对象,并且可能无法及时发送边带数据包以保持连接有效.理想情况下,您不会在 Git 存储库中存储许多大型二进制文件,因为这对它们来说不是一个好的用途,但您可以尝试使用 SSH,使用 keepalive 可以使连接存活足够长的时间以完成连接。不过,您不应将 Git 用作备份或归档解决方案,或工件存储,例如。
也有可能您的连接确实存在一些网络问题(包括由代理、非默认防病毒或防火墙或 TLS 中间件引起的问题),在这种情况下您需要解决上述问题(或卸载或删除所述软件或设备)。有时连接也会中断。
我注意到我的 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 的二进制文件,而且我有很多这样的文件。谁能帮我解决这个问题?
当您通过 HTTPS 推送时,会有一个请求(即您推送的数据)和一个包含状态代码和正文(对于 Git 请求,包含消息)的响应。如果您推送数据并且远程端接受了它,但从未成功发送响应,或者如果该响应被网络问题或干预系统中断,那么 Git 无法知道您的请求是否成功。
在这种情况下,响应表明消息在读取边带响应的过程中被中断,这意味着假设远程端确实完成了处理是不安全的。 Git 因此,在这里失败是正确的。
请注意,有一些可能的原因。如果您要上传大量压缩效果不佳的二进制文件,那么 Git 可能会合理地花费大量时间来解压缩这些对象,并且可能无法及时发送边带数据包以保持连接有效.理想情况下,您不会在 Git 存储库中存储许多大型二进制文件,因为这对它们来说不是一个好的用途,但您可以尝试使用 SSH,使用 keepalive 可以使连接存活足够长的时间以完成连接。不过,您不应将 Git 用作备份或归档解决方案,或工件存储,例如。
也有可能您的连接确实存在一些网络问题(包括由代理、非默认防病毒或防火墙或 TLS 中间件引起的问题),在这种情况下您需要解决上述问题(或卸载或删除所述软件或设备)。有时连接也会中断。