Git Clone 时报“fatal: index-pack failed”

解决clone问题:

第一步确认,基础环境

1.1 当前目录据有写权限

touch a.txt
ls -al

确认创建成功。

删除废弃目录:rm a.txt

1.2 确认磁盘空间充足

1、查看文件空间是否充足

df -h 

2、确认文件inode是否有足够的空余

df -ih 

出现这种情况,是小文件占用较多的inode,创建文件或目录占用一个inode

3、确认是否有删除的文件未释放

如果以上两项检查均存在空闲,但仍然提示“No space left on device”。
则说明文件被占用未被释放。
在linux中,可以执行lsof | grep deleted,如果存在大量文件,则表明有些文件删除时还被其它进程占用,此时文件并未真正删除,只是标记为 deleted,只有进程结束后才会将文件真正从磁盘中清除。

重启主机或者根据进程号杀掉进程即可。

第二步,解决大文件或大仓库传输问题

2.1 先验证一级clone没有问题

git clone --depth 1 git@x.x.x.x:test.git

确认可以正常拉取文件

2.2 调整拉取内存和压缩配置

cd test
git config --add pack.packSizeLimit 512M
git config --add pack.windowMemory 512M
git config --add core.packedGitLimit  512M
git config --add core.packedGitWindowSize 512M
git config --add core.compression 5

2.3 从新更新

git gc --aggressive
git repack -a -f -d --window=250 --depth=250
git pull 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。