ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

gitee 爆仓 处理流程

2021-01-04 10:36:40  阅读:201  来源: 互联网

标签:repo git -- 流程 gitee filter 爆仓 branch now


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
1

使用 git filter-repo 清理全部 *.jpg 只需要

git filter-repo --path-glob '*.jpg' --invert-paths
1

不仅命令简单,而且速度超快,只不过不能像 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

标签:repo,git,--,流程,gitee,filter,爆仓,branch,now
来源: https://www.cnblogs.com/porter/p/14228461.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有