赞
踩
目前看下来是,如果给 git 仓库提交大文件(具体多大算大,暂时还没有查到,我本地试 300M 的文件会有问题),则会在 .git\objects\pack 中有一个比较大的文件。提交了 300 M 的文件,这个缓存文件大概 70M 左右。
网上常用的方式是,使用 git-filter-repo 删除大文件。
pip install git-filter-repo
下面命令本地没有试过
git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')"
git filter-repo --invert-paths --path effect.pdb --force
如果你本条 commit 只包含这个大文件,则会删除 commit。如果该 commit 包含提起的提交,则删除大文件,其他修改保留。
我这边需要重新添加远程仓库,我看文献里面没有这个步骤,不知道是不是我这边什么配置导致的。
git remote add origin git@xxx.git
git push origin xx --force
下次下载这个仓库,.git 里面就不会包含这个缓存文件了。
但是之前已经下载的仓库里面还保留这个文件,可以本地执行下面的命令把本地缓存清了。
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。