前情回顾:git项目放在公司服务器上面,克隆等操作需要连接VPN才能操作。由于项目比较大,网速比较慢,克隆项目经常出现fetch-pack: invalid index-pack output。在网上查找各种解决方法。也就这一种有点效果。仅供参考,不一定适合每一个人。
出现该问题的原因是git clone的项目过大,比如我的项目500多兆(网络不畅一般都是使用VPN出现这个问题)导致项目拉去失败。
网上其他解决方案:设置全局postbuffer和time,感觉没什么毛用,只要网络不好经常断线无解。
感觉有点用的解决方法记录一下:
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=10),执行多次每次增加一段
如:git fetch --depth=100
git fetch --depth=200
git fetch --depth=500
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拉取全部分支(这一步还是全量拉去分支,如果网络波动厉害,经常掉线,还是会失败的)。
当执行这一步能成功的话,说明网络正常了。对于正常clone这个时候报错代码还在资源管理器中,如果正常clone的话报错就全部删掉了。
正常clone肯定也会没问题的啦。
上面的方法都是辅助,想彻底解决问题,还是需要找网络部门叫他们把网络给搞好了。