今天写编译原理的时候,codeLLDB说要更新,但是因为docker的端口映射有问题,所以只好从网页下载手动安装,但是我把50M大小的安装包拷贝到了Lab里面,而Lab又不允许超过10M,这个时候我直接git add . + git commit了,于是这个文件直接进入了git记录,导致文件过大无法上传了!
查看大文件
1
git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')"
删除要删除的文件(把big-file.jar换成要删除的即可)
1
git filter-branch --force --index-filter 'git rm -rf --cached --ignore-unmatch big-file.jar' --prune-empty --tag-name-filter cat -- --all
出现这样的输出就是成功了
1
Rewrite 6cdbb293d453ced07e6a07e0aa6e580e6a5538f4 (266/266)
如果要推送到远端需要用force
1
git push origin master --force
通过垃圾回收GC彻底删除文件
1
2
3rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now
这样终于是解决了,幸好是最后一次算分的实验了,不然后患无穷啊,据助教说git记录是不准改的…标准的方法是从lab0 remake…