.git文件过大解决

2020-10-17 16:13发布

最近使用git时,不小心上传了大文件导致push超时缓慢,后面发现.git文件快2G了,于是进行了清理。清理步骤如下

1.网上很多说是.git/objects/pack文件过大,最开始我的objects文件很多而pack文件下没有文件的,所以执行

git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -g | tail -5

报错

fatal: Cannot open existing pack file '.git/objects/pack/pack-*.idx'

.git/objects/pack/pack-*.pack: bad

执行git gc之后pack目录下就有文件了

执行下面命令

find .git/objects/ -type f


执行git gc命令

查找大文件

git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -n | tail -3   


根据上面提交id看文件

git rev-list --objects --all|grep 7b83aa3d84cb2e523f019e979835a4ffcaf15064

移除doc/book/目录下提交的文件记录

git filter-branch --force --index-filter 'git rm -rf --cached --ignore-unmatch  doc/book/**' --prune-empty --tag-name-filter cat -- --all

真正的删除

rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now
git gc --aggressive --prune=now
git push origin master --force
让远程仓库变小``
git remote prune origin

参考:https://www.jianshu.com/p/fe3023bdc825

标签: