Git 错误:致命:协议错误:错误的行长度 196 发送包:读取边带数据包时意外断开连接

问题描述 投票:0回答:1

我的终端上不断出现此错误。我不知道这意味着什么,尽管我尝试了不同的解决方案但没有一个有效

fatal: protocol error: bad line length 196
send-pack: unexpected disconnect while reading sideband packet
error: failed to push some refs to 'https://github.com/xxxxxx/xxxxxx.git'

我首先认为这是一个糟糕的互联网连接,但现在我几乎可以肯定它不是,因为我尝试了几个提供商和服务器,甚至监控了下载和上传速度。

有人可以解释一下这是什么吗?

git github
1个回答
0
投票

消息“fatal: protocol error: bad line length 196”表示协议中的部分数据已损坏。 Git 的 HTTP 协议使用 pkt-line 格式,该格式由指定长度的 4 个十六进制字节组成,然后是数据的其余部分。在这种情况下,线长度不正确。

理论上有一些事情可能会发生。首先,GitHub 可能存在问题并且正在发送无效数据。这不太可能,因为有人会立即注意到。也有可能是你的 Git 版本有问题,但这也不太可能。

由于您使用的是 HTTPS,因此会对数据进行端到端的完整性检查,因此除非您明确允许,否则数据无法被篡改。如果是网络问题,TLS 连接将会失败,并且您会看到完全不同的错误。因此,最可能的答案是您的计算机或网络上有一些软件被设置为透明地拦截加密连接。这可能是非默认的防病毒软件或防火墙(在 Windows 上非常常见)、系统上的监控软件、家长控制或网络上的 TLS MITM 代理(如果您在公司环境或学校中)。所有这些通常被称为代理,并且已知许多代理都会导致此问题。

如果您有此类软件,您只需将其完全卸载并重新启动(禁用它通常是不够的),或者转移到没有代理的网络。如果这是不可能的企业环境,请向您的 IT 部门投诉。

切换到 SSH 也可能有效。有时这种代理不理解 SSH,如果您使用 SSH 并正确验证 GitHub 的 SSH 指纹,那么就有可能避免破坏连接的篡改。

© www.soinside.com 2019 - 2024. All rights reserved.