一、问题分析
上传Gitee时,单个文件有最大100MB的限制,其中某个文件超过了100MB就会导致(插件)上传超时或(命令行上传)报错,我本地报这个错是因为:动图Gif文件多,其中一个GIF文件是261.69 MB,经过压缩之后,用命令行上传,单个文件超过50MB就会有warning提醒,但是不影响上传,插件上传则不会提醒。
二、解决方法
1、先根据提示命令找出哪个文件超过了文件限制
git rev-list --objects --all | grep 报错文件代码
比如我的报错文件代码是:05530da3156606068d91f1248bc14556ab11436d
那么就应该输入以下命令:
git rev-list --objects --all | grep 05530da3156606068d91f1248bc14556ab11436d
2、不出意外,这里就要出意外了。。。
输入以上命令,如果报这个错:grep不是内部或外部命令,也不是可运行的程序或批处理文件。
原因:grep是linux系统下的命令,windows不支持该命令
解决:只需要把grep换成findstr,重新输入命令:
git rev-list --objects --all | findstr 报错文件代码
3、以上命令会获取到问题文件的相对路径,输入以下命令将它从git缓存中删除:
git filter-branch -f --prune-empty --index-filter "git rm -rf --cached --ignore-unmatch 文件相对路径复制到这里" --tag-name-filter cat -- --all
4、删除之后,清除本地缓存
git gc --prune=now
5、最后重新commit+push即可
三、小小建议
像动图这类静态资源,可以尽量压缩到50MB以下,避免不能上传gitee,或者出现页面加载慢卡顿的情况