git rm 大文件之后 pack文件仍然巨大 清理办法

出现原因:
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}')"

2.删除改文件记录

git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch ' --tag-name-filter cat -- --all
为该文件路径

3.重构pack与gc

rm -rf .git/refs/original/
git reflog expire --expire=now --all
git fsck --full --unreachable
git repack -A -d
git gc --aggressive --prune=now

4.push force

git push --force

你可能感兴趣的:(电脑)