图片过多导致GitHub/Gitee仓库爆仓?这里有解决方案!
摘要助手
切换
SummaryGPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往订阅 💥
前往评论 💬
👀 部署教程
图片过多导致GitHub/Gitee仓库爆仓?这里有解决方案!
dong4j背景
最近在进行博客迁移, 以前吃过图床的亏, 所以这次将图片全部保留在本地, 并使用 GitHub 和 Gitee 来作备份, 但是因为大量的图片提交导致出发了 Gitee 的仓库体积限制, 在最近几次提交时, 出现了如下错误:
1 | remote: Powered by GITEE.COM [1.1.5] |
解决
根据 Gitee 的官方文档介绍, Gitee 平台目前对仓库的配额如下:
套餐 | 免费版 | 基础版 | 标准版 | 高级版 | 尊享版 |
---|---|---|---|---|---|
单仓库 | 最大 500 MB | 最大 1 GB | 最大 1 GB | 最大 2 GB | 最大 3 GB |
单文件 | 最大 50 MB | 最大 100 MB | 最大 100 MB | 最大 200 MB | 最大 300 MB |
1. 清理不必要的对象
首先可以尝试清理一些不必要的 Git 对象:
1 | git gc --prune=now |
这个命令会压缩 Git 仓库中的历史,清理松散对象,并删除无法访问的对象。
存储库 GC 可以检查仓库中未使用的对象和资源,将其删除或压缩成更小的对象,从而优化 Git 在存储库性能,减少存储库磁盘占用。
当仓库体积膨胀导致访问速度下降时,通过 Git GC 将可能提高仓库的访问速度。
阶段时间内使用多次强推从仓库中删除了大量数据,使用 Git GC 可以删除未使用的对象,释放存储空间。
执行后并没有减少仓库体积, 所以还要继续.
2. 删除大文件的历史记录
前面说了我的仓库提交了很多图片和少量 mp4 等大体积文件, 所以我们可以使用 git-filter-repo
工具来删除它们的历史记录。
在 macOS 下安装 git-filter-repo
:
1 | brew install git-filter-repo |
然后可以运行以下命令来删除特定文件类型的历史记录:
1 | git filter-repo --invert-paths --path-regex '\.(jpg|jpeg|png|gif|mp4|webp|svg)$' --force |
执行之后的效果:
清理效果非常好, 但是 把我仓库里面的所有图片全部清空了, 我要的是只删除历史记录中提交的图片…..
还有我有备份, 从来吧..
3. bfg-repo-cleaner
这次使用一个开源项目 bfg-repo-cleaner,
下载 jar 文件然后重命名为 bfg.jar, 比如我要删除大于 1M 的所有历史记录:
1 | $ java -jar bfg.jar --strip-blobs-bigger-than 100M some-big-repo.git |
效果还不错:
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果