当Git仓库中存在大文件,会持续保留在Git历史中,下面是对删除这些大文件的一些解决方案
已提交到git缓存
删除缓存
git rm --cached video.mp4
|
已提交到本地分支
reset到上一个版本
已提交到远程分支
git gc git filter-repo --path-glob video.mp4 --invert-paths --force git gc --aggressive
git remote add origin git@ticktechman.github.com:ticktechman/demo.git git push --all --force git push --tags --force
|
git filter-repo不是原生git命令,是一个拓展,从本地记录中寻找和指定文件相关的提交,将其全部删除,重写整个历史。
git filter repo仓库
对未知大文件的远程仓库清理
git gc git rev-list --objects --all |grep -f (git verify-pack -v .git/objects/pack/*.idx | grep blob | sort -k 3 -n |cut -f 1 -d " " | tail -10)
git largefiles -t 10
git filter-repo --path-glob xxx.mp4 --invert-paths --force git gc --aggressive
git remote add origin git@ticktechman.github.com:ticktechman/demo.git git push --all --force git push --tags --force
|