最近使用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
来源:51CTO
作者:fan0128
链接:https://blog.51cto.com/fan0128/2538758
标签: