目前 Gitee 仓库对于个人以及不同套餐的企业版本都有单仓库大小的限制,一些用户在使用一段时间后,由于不正确的将一些二进制文件直接上传到 Git 仓库,并且后续又频繁改动,导致仓库配额过大,进而导致无法正常使用。
虽然Gitee提供了仓库瘦身文档,但是在实际操作的过程中,由于不同用户的操作习惯不同,成功率比较低,而且我们也需要投入大量的精力来协助客户进行操作,这一过程中需要消耗极大的成本。
为了更好地解决仓库瘦身的问题,Gitee团队在近期开源了仓库瘦身工具git-repo-clean,通过提供充足的提示和引导,来协助用户进行大文件的移除和清理。
项目名称:git-repo-clean
项目作者:Gitee 团队
开源许可协议:MulanPSL-2.0
项目地址:git-repo-clean: 对Git仓库大文件进行扫描、清理,并重写提交历史的Git拓展工具。
依赖环境
- Git ≥ 2.24.0 (必须)
- Golang ≥ 1.15 (可选)
项目功能
- 可以选择查找大于指定大小的文件
- 自由选择可处理的大文件
- 自动帮用户进行处理,并且推送到所有的引用
如何使用
git-repo-clean 支持交互式和命令行使用,目前有如下的选项:
-v, --verbose show process information
-V, --version show git-repo-clean version number
-h, --help show usage information
-p, --path Git repository path, default is '.'
-s, --scan scan the Git repository objects
-b, --branch set the branch to scan, default is current branch
-l, --limit set the file size limitation, like: '--limit=10m'
-n, --number set the number of results to show
-t, --type set the file type to filter from Git repository
-i, --interactive enable interactive operation
-d, --delete execute file cleanup and history rewrite process
交互式使用
输入git repo-clean可以直接进入交互模式,因为没有加任何参数,只能使用默认选项。此模式下默认打开的选项有--scan、--delete、 --verbose,如果想使用其它选项,如--branch,则可以使用git repo-clean -i[--interactive]。

命令行使用
git repo-clean --scan --limit=1G --type=tar.gz --number=1
该命令的含义为,扫描仓库当前分支的文件,文件最小为1G,类型为tar.gz,显示前1个结果。
git repo-clean --scan --limit=1G --type=tar.gz --number=1 --delete
在命令后添加--delete选项,则会批量删除当前分支扫描出的文件,并重写相关提交历史(包括HEAD)。
git repo-clean --scan --limit=1G --type=tar.gz --number=1 --delete --branch=all
在命令后添加--branch选项,则会扫描所有分支的文件再执行删除,并重写相关提交历史。

如果你的 Git 仓库恰好需要瘦身,或者想要了解更详细的项目信息和技术原理,那么就点击后面的链接前往项目仓库看看吧:git-repo-clean: 对Git仓库大文件进行扫描、清理,并重写提交历史的Git拓展工具。