相关技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > 相关技巧 > Git仓库过大致使clone失败

Git仓库过大致使clone失败问题及解决

作者:RisunJan

Git仓库太大导致克隆失败?别再浪费时间了!直接点击这里,用这3个分批次下载和优化参数的方法,快速突破RPC错误和earlyEOF问题,轻松clone完整代码库,告别CANCEL报错

Git仓库过大致使clone失败

remote: Enumerating objects: 2308, done.
remote: Counting objects: 100% (1351/1351), done.
remote: Compressing objects: 100% (850/850), done.
error: RPC failed; curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL (err 8)
error: 7667 bytes of body are still expected
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output​

原因分析

一般这种情况都是因为项目分支过多,导致你要下载的东西太多,从而引起这个问题。

网上有一个流传比较多的修改方案:

git config --global core.compression -1

使用上述命令,来修改压缩模式,尝试过了没有用。

解决思路

引起这个问题的根源是文件过多,所以我们可以分批次下载文件,先下载一部分,再下载剩下的。

以下是解决方案:

关闭 core.compression

git config --global core.compression 0

获取最近一次提交

使用depth这个指令来下载最近一次提交

git clone --depth 1  [仓库链接] 

获取完整库

git fetch --unshallow 

期间有可能失败,重试一下,如果还不行,试试延长克隆时间


成功后,整个仓库就都下载下来了,包括历史的提交

延长克隆的时间

git config --global http.postBuffer 600000

pull一下查看状态,问题解决

git pull --all

可以看到代码库已经完成clone。

经过分支名称去拉取分支信息以及checkout

git branch -a
git remote set-branches origin '远程分支名称'
git fetch --depth 1 origin 远程分支名称
git checkout 远程分支名称

利用镜像网站

将链接中的 github.com 替换为 github.com.cnpmjs.org 或其他镜像地址

如果报以下错误

Could not resolve host: github.com.cnpmjs.org

在git控制台上输入下面这句,然后在正常去拉取,它会使你默认使用镜像

git config --global url."https://github.com.cnpmjs.org/".insteadOf https://github.com/

如果需要替换回原来的默认地址

git config --global url."https://github.com/".insteadOf https://github.com.cnpmjs.org/

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文