记一次git推送代码仓库体积过大问题
2023-08-03 本文已影响0人
逆水寒Stephen
问题截图:
问题截图
从图中可以看出本地提交的仓库是4.18个GB,但是gitee限制是3GB,所以提交被拒绝了,然后给了个文档地址:https://gitee.com/help/articles/4232,点进去可以看到,企业尊享版最大限制是3个GB,我们本来就是企业版,这个意味钞能力无法解决了,另寻他法,按他文档里面的其他命令行方法试了,效果不佳,后找到两篇文章https://www.rstk.cn/news/100168.html?action=onClick和https://blog.csdn.net/Forever_wj/article/details/123828382,一通折腾下,提交的内容还更大了点,😭,命令如下,也许你有帮助:
1.pip install git-filter-repo
2.cd 进入项目根目录
3.查找大文件(参数里面100代表查找出最大的100个文件和对应Commit信息)
git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -100 | awk '{print$1}')"
4.根据找到的大文件执行强制彻底删除历史大文件(比如我看到是app和appExternal的release里面的aar比较多)
git filter-branch --force --prune-empty --index-filter "git rm -rf app/release/*.aar appExternal/release/*.aar --cached --ignore-unmatch" --tag-name-filter cat -- --all
5.上面执行重写commit完成后强制推送到远端
git push origin master -f
6.如果执行时报refs/original/已经存在,先执行:rm -rf .git/refs/original/
7.最新彻底清除
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now
上面方法对我失效后我想直接删除之前的commit,这样就不会存在超限了吧,于是找到这个文章https://zhuanlan.zhihu.com/p/347385535,执行了下面这些命令,一通折腾下,提交的内容还是大了点,😭,命令如下,也许你有帮助:
1.创建孤立分支,并切换到该分支:
git checkout --orphan latest_branch
2. 暂存所有文件:
git add -A
3. 提交所有更改:
git commit -am "First Commit"
4. 删除主分支 master:
git branch -D master
5. 重命名当前分支为 master:
git branch -m master
6. 强制推送本地分支:
git push origin master -f
最后实在无语了,猜想应该是gitee上面的commit超限了,因为我重新拉个新的下来马上提交都提示超限,所以只能采取终极办法:
1.将项目在gitee网站去download一个源码zip下来
2.在gitee网站上将项目重命名备个份就暂时废弃这个项目
3.新建一个和之前同名的项目,这样保证同事间/jenkins这些不需要改url
4.将down下来的源码zip,解压后重置执行git相关命令推送到新地址上:git init git remote add origin https://gitee.com/xxxxx.git git add . git commit -m "xxx" git push origin master