删除repo中大文件

平常使用repo拉代码,repo sync 后发现 .repo文件非常大,一般有150G,而项目的全代码也不会超过40G,所以有必要去减少.repo文件的大小。
通过一番查找,下面这个文件比较大:

.repo/project-objects/

而这些文件下面,pack文件是最大的文件.一般都是1-6G。

.repo/project-objects/***.git/objects/pack/pack-5ac231755ddcbc2727aca987f32e61bad220c0fe.pack

所以想办法将他们删除。删除命令如下:

find .repo/ -name "*pack" -type f |xargs -I {} du -s {}|sort -k 1 -n|tail -10|awk '{print $2}'| xargs -I {} rm -vf {}

或者进入.repo目录执行命令

find . -name "*pack" -type f |xargs -I {} du -s {}|sort -k 1 -n|tail -10|awk '{print $2}'| xargs -I {} rm -vf {}

上面的命令解释一下:

  1. 首先扫描.repo下所有以pack文件名结尾的文件
  2. 根据扫描的文件分别计算他们的占用大小。
  3. 再将它们进行排序
  4. 选出最大的10个文件
  5. 通过awk工具筛选出第2列的文件路径
  6. 将文件删除,并现实删除结果

网上其他人的方法都是在git 压缩,比如命令 git gc --aggressive.但是对于repo来说,效果不明显。我的这个方法可以放心使用,不会导致git 提交不了。
通过这个方法能有效的减少.repo文件的总大小,一般可以从100G的大小减少到20G左右,甚至不足1GB。


2018.11.20
有一个问题,就是你下次repo sync时,那些删除的文件会再次下载。如果您有方法保证删除的文件不再同步,请留言。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值