首页 > 解决方案 > git 删除不需要的大 blob 文件

问题描述

我的 git 存储库很大,因此在分析时我发现有几个大文件意外签入到一个分支中并且它被删除了。但是由于 git 保留了它的历史。我将这些文件作为 blob。

我可以使用这些命令删除/清除这些文件和它的历史参考:

git filter-branch --index-filter 'git rm --cached --ignore-unmatch filename' -- --all

rm -Rf .git/refs/original

rm -Rf .git/logs/

git reflog expire --expire=now --all

git gc --aggressive --prune=now

执行上述命令后,我的存储库已按预期缩小

但我现在面临的问题是:当我将其推送到远程使用时:

git push --all --force

然后尝试在不同的路径中再次克隆以检查是否反映了更改,我看到了相同的旧大型存储库。

我试过了 :

git push --all --prune --force

所有的分支都被删除了。

我只想删除这 2 个 blob 文件及其引用。远程中的其他所有内容都应该完好无损。

标签: gitgit-filter-branch

解决方案


推荐阅读