【解决】:git clone项目报错fatal: fetch-pack: invalid index-pack output

开源 0

象:之前一直使用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缓存的大小。

经过上述修改,一个远程仓库问题解决,另一个有更大文件的库依旧出错。

又查询了一个解决办法:

  1. 首先拉取项目最后一次提交 git clone --depth=1 项目地址

  2. 拉取全部项目内容 git fetch --unshallow , 一般不大的项目都可以拉取下来了;

  3. 如果步骤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
  4. 步骤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仓库的全部分支映射

  5. 最后执行 git fetch -pv拉取全部分支.

参考:

https://www.cnblogs.com/Lenbrother/p/17726195.html

github_githup上传client_loop: send disconnect: connection r-CSDN博客

也许您对下面的内容还感兴趣: