问题描述

在尝试从 GitHub clone 大型仓库时,经常遭遇网络连接问题,导致克隆操作失败。错误信息如下:

error: RPC failed; curl 18 transfer closed with outstanding read data remaining
error: 6801 bytes of body are still expected
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output

随后,clone 操作就会中止。

解决方法

方法一:增加缓冲区大小

一个简单的解决方案是增加 Git 的缓冲区大小。可以通过以下命令来设置:

git config --global http.postBuffer 524288000

这条命令将缓冲区大小设置为 500MB,适用于大多数大型仓库的克隆。

方法二:浅克隆后更新

另一个我经常使用的方法是先进行浅克隆,然后再更新仓库的历史记录。操作步骤如下:

$ git clone http://github.com/large-repository --depth 1
$ cd large-repository
$ git fetch --unshallow

首先,通过 --depth 1 参数进行浅克隆,这将只下载最新一次提交的历史。然后,切换到仓库目录并使用 git fetch --unshallow 命令来获取完整的历史记录。

参考链接

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐