某天回家,本地修改好相关文档,开始推送到远程,结果,idea报了个错:
Push rejected
Push master to origin/master was rejected by remote
为避免idea的问题,又用git bash手动push,结果还是报错:
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@xxxxx.git'
首先考虑是分支权限的问题,尝试过后发现不是。
(解决办法其他博客有相关介绍,这里不废话多说了)
然后考虑是远程仓库与本地仓库并不一致的问题,尝试过后也不是。
(解决办法其他博客有相关介绍,这里不废话多说了:例如https://www.cnblogs.com/wurendao/p/11732876.html,但是不建议使用git push -u origin master -f,这样的操作相当于是删除远程分支然后提交当前分支,导致的结果是别人提交的代码都丢失,只有自己的最新代码)
那就真的奇了怪了,之前推送还好好的,怎么突然之间用不了了呢?
百度解决不了的问题,只能自己摸索了,于是我仔细看了错误git bash界面的提示信息:
Total 3 (delta 1), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-5.0]
remote: This repository(including wiki) size 1033.32 MB, exceeds 1024.00 MB.
remote: Push rejected for repository size exceeds limit.
remote: HelpLink: https://gitee.com/help/articles/4232
remote: Repository GC: https://gitee.com/tt1996/data/settings#git-gc
remote: Enterprise Edition: https://gitee.com/enterprises#commerces
To gitee.com:tt1996/data.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@xxxxdata.git'
重点来了,就是那句size 1033.32 MB, exceeds 1024.00 MB.
我想这不可能,这个仓库我只放了一些文档,不可能超过1024mb,本地看了下大小,确实没有,只有三百多兆。那为什么提示大小超过了1024mb呢?
于是我去gitee控制台,查看了下仓库大小,**,确实是1033mb大小。。。
这是为什么呢?
原来是因为git库的膨胀?详细介绍可以参考知乎文章:https://www.zhihu.com/question/27826922/answer/477074035
这里只说一下解决办法,对于使用gitee的,很简单,就是做一下存储库GC
gitee目前没有lfs。
如果是使用的不是gitee,如其它的GitHub,gitlab等,可以使用git lfs方案。
相关git lfs,可参考:
https://www.cnblogs.com/cangqinglang/p/13097777.html
https://blog.youkuaiyun.com/wangji5850/article/details/104491208