仓库体积过大,如何减小?
概述
碼云平臺目前對倉庫的配額如下:
| 單倉庫 | 最大 500 MB | 最大 1 GB | 最大 1 GB | 最大 2 GB | 最大 3 GB |
| 單文件 | 最大 50 MB | 最大 100 MB | 最大 100 MB | 最大 200 MB | 最大 300 MB |
如用戶在使用過程中不小心將較大的二進制文件加入倉庫,那么倉庫大小很快就會超過規定的配額,用戶可以通過升級到對應的套餐配額或對倉庫進行歷史改寫瘦身,來解除系統對倉庫推拉服務的鎖定。
- 套餐升級可訪問:https://gitee.com/enterprises?了解
- 倉庫瘦身方案見下方:
查看存儲庫中的大文件
git rev-list --objects --all | grep -E `git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -10 | awk '{print$1}' | sed ':a;N;$!ba;s/\n/|/g'`或
git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -15 | awk '{print$1}')"改寫歷史,去除大文件
注意:下方命令中的?path/to/large/files?是大文件所在的路徑,千萬不要弄錯!
git filter-branch --tree-filter 'rm -f path/to/large/files' --tag-name-filter cat -- --all git push origin --tags --force git push origin --all --force如果在?git filter-branch?操作過程中遇到如下提示,需要在?git filter-branch?后面加上參數?-f
Cannot create a new backup. A previous backup already exists in refs/original/ Force overwriting the backup with -f并告知所有組員,push 代碼前需要 pull rebase,而不是 merge,否則會從該組員的本地倉庫再次引入到遠程庫中,導致倉庫在此被碼云系統屏蔽。
更加具體的操作可以點擊文章?改寫歷史,永久刪除git庫的物理文件?查看
Gitee 存儲庫體積控制策略
碼云已將服務端的鉤子切換到 GNK (Gitee Native Hook),GNK 基于 C++ 編寫,使用了 Git 環境隔離等高級特定,意味著大文件檢測和存儲庫體積檢測不會再有漏網之魚。一些用戶的存儲庫體積已經超過了 Gitee 配額限制,而之前的鉤子檢測存在缺陷,無法實時攔截大存儲庫和大文件,當切換到 GNK 后,這些用戶修改他們的存儲庫卻無法推送到 Gitee,這讓他們產生了困擾。
《Gitee 存儲庫體積控制策略》就這一困擾解答若干問題,詳情請見:https://my.oschina.net/GIIoOS/blog/3126211
總結
以上是生活随笔為你收集整理的仓库体积过大,如何减小?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有了二叉查找树、平衡树为啥还需要红黑树?
- 下一篇: Flask项目--注册