在用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'