处理.git文件夹过大臃肿

使用BFG清理git历史大文件

本人是后端开发,也会些前端的技术,于是就clone代码。小小代码半天也没有克隆下来,好在最后下载下来了。使用git count-objects -vH命令一看,发现有2G多,这是很不正常的。

git自带清除命令,但是比较慢,所以我们使用bfg来进行清理。

bfg下载jar包:https://rtyley.github.io/bfg-repo-cleaner/#download

1722700394327

步骤

1 打开git命令窗口

需要另起文件夹

2 只克隆git相关的文件

git clone --mirror git@127.0.0.1:retailCredit.git

1722698374277

克隆完可以在文件夹中看到名为retailCredit.git的文件夹

cd your_project.git

1722698460557

3 查看大小

 git count-objects -vH

1722698568572

可以看到size-pack的大小有2.62G

4 查看大文件

git rev-list --objects --all | grep "$(git verify-pack -v ./objects/pack/*.idx | sort -k 3 -n | tail -10 | awk '{print$1}')"

1722698823797

可以看到有人把自己微信聊天记录传上来了,还有依赖包等和源码无关的东西

5 清理文件

这里可以清理文件或者文件夹,按需清理。如上图,既有文件夹WeChat Files文件夹,还有压缩包

5.1 清理文件夹

注意删除的是目录名称,不是路径名称

java -jar D:\bfg-1.14.0.jar --no-blob-protection --delete-folders  'WeChat Files'

1722699236744

5.2 清理文件

java -jar D:\bfg-1.14.0.jar --no-blob-protection -D  node_modules.zip
java -jar D:\bfg-1.14.0.jar --no-blob-protection -D  permission.zip
java -jar D:\bfg-1.14.0.jar --no-blob-protection -D  dist.tar

6 清理脏数据

git reflog expire --expire=now --all && git gc --prune=now --aggressive

7 再次查看文件大小

git count-objects -vH

1722699354369

本次清理完之后只剩下了67MB了,感觉还是大了,再查询一次发现还是有垃圾文件

git rev-list --objects --all | grep "$(git verify-pack -v ./objects/pack/*.idx | sort -k 3 -n | tail -10 | awk '{print$1}')"

1722699400611

接下来重复步骤4至步骤7即可

8 提交变动

如果发现没问题了,就可以提交了。

git push -f

在这里插入图片描述

本次处理完成后,开发需要重新clone代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值