使用git push将本地项目push到gitee时,发生错误报告,如下图所示:
标红的error显示:error: File: f8ca2c1b4c347904a4b088d145b55e9c2b595f80 102.62 MB, exceeds 100.00 MB.
可知gitee超过100MB的文件无法上传,此时如果在项目中删除此文件,重新使用
git add .
、git commit -m "XXX"
的方式,会导致文件依然保留在缓存中,从而无法上传。
具体删除超标文件的方式:
保证项目中所有文件均已commit
使用文中提到的git rev-list --objects --all | grep XXX
注意此处,XXX替换为您报错超过100M的文件编码,我的报错文件编码是:f8ca2c1b4c347904a4b088d145b55e9c2b595f80
完成步骤2,可以查到到超过100M的文件名
使用$ git filter-branch --tree-filter 'rm -f xxx' --tag-name-filter cat -- --all
注意此处,XXX替换为您报错超过100M的文件名(第三步查到的),我的报错文件名为:net_params_pu.pt
如果显示以下信息:
Rewrite 2e607bbda0e444e5ad1a22cb115305db5fa59660 (2/2) (1 seconds passed, remaining 0 predicted)
Ref 'refs/heads/master' was rewritten
如下图所示:
说明删除成功;直接git push origin master即可成功上传。
如果显示以下内容:
Cannot rewrite branches: You have unstaged changes.
如下图所示:
说明删除失败,项目中包含未提交的代码,需要先使用git add .
、git commit -m "XXX"
将项目代码提交到本地缓存,再进行删除操作($ git filter-branch --tree-filter 'rm -f xxx' --tag-name-filter cat -- --all
)。
git push origin master操作
显示上传成功。问题成功解决。
首先确认需要删除的缓存文件的名字,如net_params.py。
之后进行删除操作($ git filter-branch --tree-filter 'rm -f xxx' --tag-name-filter cat -- --all
)。此处XXX替换为需要删除的文件名:net_params.py
最后git push origin master 即可 。
git push提示文件大于100m处理方法参考链接:https://blog.csdn.net/qq_40305944/article/details/122527380