git提交发生 ! [remote rejected] dev -> dev (pre-receive hook declined)的解决
提交个人测试项目时,需要参考一些电子书进行测试,避免问题直接上传到项目中提交了,于是就发生了如图报错
看第一句Error显示,探测到大文件,第四句指出大文件名以及占存,显示项目不能超过100M
所以需要先移除该文件。
注意,直接删除重新提交,是不行的,因为之前这次报错前两步,git add命令已经将大文件提交存储到本地仓库缓存,直接删除文件,本地缓存文件并没有删除,所以需要执行一下git语句:
$ git filter-branch --force --index-filter 'git rm -rf --cached --ignore-unmatch 《Vue企业开发实战》_肖睿等_2018-12-01.pdf' --prune-empty --tag-name-filter cat -- --all
注意:蓝色部分即为报错的第四局提示的文件名,直接复制即可。
然后,再次提交,执行:
$ git push origin dev --force
此外还需要删除本地缓存对象,避免出错;依次执行:
$ rm -rf .git/refs/original/
$ git reflog expire --expire=now --all
$ git gc --prune=now
最后,查看远程github仓库或者提交历史记录,确认OK。
备注:
1.更多技术文章,参考:https://www.7017online.xyz
2.参考来源:https://www.cnblogs.com/xym4869/p/11947181.html