gitee 爆仓 处理流程
Git 并不适合管理二进制文件,但有些情况下又不得不添加一些图片之类的二进制文件,但一旦频繁更改的话,历史记录中将记录着每一个完整的二进制文件,导致 repo 越来越大……为了解决该问题,往往需要一些针对二进制文件的处理手段
定期清理 Git 历史
定期清理的话,虽然麻烦,但也最实用,在使用 LFS 之前我也定期清理过,是使用的 git-filter-branch,但由于嫌麻烦,就改用 LFS 了,至于为什么不用 BFG,因为懒得装 JDK
弃用 LFS 后,我仍然使用 git-filter-branch,不过实在是麻烦,每次清理我需要运行好多命令,比如清理全部 *.jpg
图片,我需要
git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch -r *.jpg' \
--prune-empty --tag-name-filter cat -- --all
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now
git gc --aggressive --prune=now
git push origin master --force
emmm,就很麻烦
最近,使用 git filter-branch
会提示 warning
,推荐使用 git filter-repo
,于是就试着搜了下,这居然是 python 实现的清理器,拥有远比 git filter-branch
更加方便的使用方法,所以我在尝试了一下下就果断转 git filter-repo
了
在使用之前需要先使用 pip 安装一下
pip3 install git-filter-repo
使用 git filter-repo
清理全部 *.jpg
只需要
git filter-repo --path-glob '*.jpg' --invert-paths
不仅命令简单,而且速度超快,只不过不能像 git filter-branch
一样清楚地了解都清理了哪些文件了
TIP
如果你不知道哪些历史文件比较大的话,可以运行下面这个命令来查找一下
git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')"
git filter-repo
的一个最简单的应用啦,更多使用技巧还是要看文档的~
定期清理历史记录的方案:
--
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch -r *.jpg' --prune-empty --tag-name-filter cat -- --all
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now
git gc --aggressive --prune=now
git push origin master --force
https://nyakku.moe/posts/2020/06/12/use-git-filter-repo-clean-git-history.html
---一键全部清除
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch -r *.png *.jpg *.json *.exml *.fnt *.mp3 *.dbbin
.gitignore *.md' --prune-empty --tag-name-filter cat -- --all
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南