解决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
网友评论