我有git repo,我不小心将一些库文件提交给git远程repo。
现在,它增加了大约6.23 GB的大小。然后我尝试使用以下命令删除库
git filter-branch -f --index-filter "git rm -rf --cached --ignore-unmatch node_modules" -- --all
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now
git gc --aggressive --prune=now
现在,该库已从存储库中删除,并且未在repo文件夹中列出。但是本地仓库的规模仍然比以前更大
还有一件事是执行上述命令需要花费大量时间。我不确定他们是否运作正常
我什至尝试将其推送到远程仓库,
git push --all --force
但这并没有成功推送,直到远程仓库无法访问或没有响应,它会一直尝试到最后并突然出现
我也尝试过重写标签
git filter-branch -f \ --index-filter 'git rm -r --cached --ignore-unmatch node_modules' \ --tag-name-filter 'cat' -- --all
我也尝试了以下方法使其起作用
git config --global pack.windowMemory 0
git config --global pack.packSizeLimit 0
git config --global pack.threads "3"
但是无论我做多少,回购规模都还是一样
注意:我尝试过
git fsck --full --unreachable
列出了一些无法访问的标签
我在Git pull错误中提到:无法创建仅git gc还不够的临时sha1文件名。
可以减少回购规模的一种组合应该是:
git gc
git repack -Ad # kills in-pack garbage
git prune # kills loose garbage
但是,此操作必须在大文件(git filter-branch
)的所有清理之后进行,并且仅用于本地存储库。
将(git push --force
)推送到远程仓库后,该远程仓库将不会从相同的大小减小中受益。还需要在远端完成gc / repack / prune。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句