Git remote: error: this exceeds file size limit of 100.0 MB

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014110320/article/details/82841561

在用git进行代码的控制时,因为不小心在项目中包含了超过100M的文件,结果怎么都不能进行后续的push操作,一直报错:

remote: error: File ThinkingInJava/test.data is 144.0 MB; this exceeds file size limit of 100.0 MB

之后我直接将该文件删除掉了,之后又重新push,结果还是报一样的错误。于是想到可能是该文件已经存在于缓冲区中,于是,

$ git ls-files # 该命令输出在缓冲区中缓存的所有文件
$ git ls-files | grep test.data #找我保存的文件,结果没找到(可能我已经将缓冲区的文件删除掉了)

如果文件在缓冲区中,则直接输入命令

$ git rm --cached your-file-name

之后发现重新push还是不行,于是在晚上查,有网友非常机智的给出了下面的命令:

$ git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch your-file-name' --tag-name-filter cat -- --all

于是,我就将上面的your-file-name换成了我文件的全路径名:

$ git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch /e/xxx/xxxx/ThinkingInJava/test.data' --tag-name-filter cat -- --all

结果push之后还是不对,一直报错如下:

 fatal: E:/XXX/XXX/ThinkingInJava/test.data: 'E:/XXX/XXX/ThinkingInJava/test.data' is outside repository
index filter failed: git rm -rf --cached --ignore-unmatch /e/XXX/XXX/ThinkingInJava/test.data

后来尝试了将your-file-name换成了我当前所在文件夹下的路径,即换位相对路径,结果push成功了!!!(注意:执行命令所在的文件夹和.git文件夹在同一个路径下)

$ git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch ThinkingInJava/test.data' --tag-name-filter cat -- --all

其实原本报错的全部信息为:

remote: error: File ThinkingInJava/test.data is 144.0 MB; this exceeds file size limit of 100.0 MB

因此,提示是ThinkingInJava/test.data,就仅仅需要改成这个文件名就行,不用加上全路径,否则报错!!!

猜你喜欢

转载自blog.csdn.net/u014110320/article/details/82841561