简介

git大文件太多问题

git文件太多问题

查看超过5M得文件

find . -type f -size +5M  -exec du -h {} \;

识别出最大的三个文件

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

# 查询大文件的文件名
```shell
git rev-list --objects --all | grep 609e3fc6a45270d0197f95800c9944aa047db19c

从 git 历史中移除

git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')" >> large-files.txt
cat large-files.txt| awk '{print $2}' | tr '\n' ' ' >> large-files-inline.txt
git filter-branch -f --prune-empty --index-filter "git rm -rf --cached --ignore-unmatch `cat large-files-inline.txt`" --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

如果是非要用大文件比如github最大文件时100M建议用

大文件存储的正确方式 git-lfs