象:之前一直使用gitee将个人学习和工作相关记录上传到个人gitee仓库,一直没出现过问题。直到有一天换电脑重新拉取代码发现出了问题,具体如下图:
原因分析:
经过查询发现主要原因是因为git clone的远程仓库的项目过大导致项目拉取失败。
这篇文章提到,是缓存区不够大导致。
client_loop: send disconnect: Connection reset by peerB/s-CSDN博客
解决办法:
当推送大量数据时(初始推送大型存储库,使用非常大的文件进行更改)可能需要 http.postBuffer 在 git 客户端 (而不是服务器)上设置更高的 设置 ;将 Git 缓冲区大小增加到 repo 的最大单个文件大小:
git config --global http.postBuffer 157286400
如果还是git代码还是下载失败,则需要继续修改git缓存的大小。
经过上述修改,一个远程仓库问题解决,另一个有更大文件的库依旧出错。
又查询了一个解决办法:
-
首先拉取项目最后一次提交
git clone --depth=1 项目地址
; -
拉取全部项目内容
git fetch --unshallow
, 一般不大的项目都可以拉取下来了; -
如果步骤2还是报错
fatal: fetch-pack: invalid index-pack output
,那么可以进入项目目录执行git fetch --depth=100
(如果还是报错那就把数字调小),执行多次每次增加一段;
例如:git fetch --depth=100 git fetch --depth=200 git fetch --depth=500 git fetch --depth=1000
-
步骤3执行完成后执行
git fetch --unshallow
拉取全量分支信息,如果报错fatal: –unshallow on a complete repository does not make sense
, 则执行git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
命令增加git的orgin仓库的全部分支映射 -
最后执行
git fetch -pv
拉取全部分支.
参考:
https://www.cnblogs.com/Lenbrother/p/17726195.html
github_githup上传client_loop: send disconnect: connection r-CSDN博客