不小心在git中commit了过大的文件怎么办

由于在做lab5的时候不小心把内存的dump文件复制到了工程里并且commit了,之后我虽然删除了本地的文件,但是push的时候仍然提示我文件过大。经过查找资料,我发现了如下解决办法。

首先我试过直接rm,但是之前已经作死地commit过了,这样是没有效果的。因为 Git 会记录你所有的历史提交,为了回滚需要,只要是在git中存在过一次的文件,就会被永久记录下来,不论当前是否存在。

1.查看空间占用

git count-objects -v # 查看 git 相关文件占用的空间
du -sh .git # 查看 .git 文件夹占用磁盘空间

2.找到仓库记录中的大文件

git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')"

3.重写这些大文件涉及到的所有提交

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

4.同步远程仓库

git push origin --force --all

注意,如果调用了这个方法,在向远端 push 的时候,必须强制覆盖git push origin --force --all

猜你喜欢

转载自blog.csdn.net/qq_43351085/article/details/93406355