git - 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 文件及其引用。远程中的其他所有内容都应该完好无损。
解决方案
推荐阅读
- php - 为 laravel 项目创建虚拟主机
- python - 忽略关键字典python的一部分
- c# - 具有多参数的多方法或具有对象参数的一种方法
- java - 如何从另一个类中为 TextView 设置文本?
- reactjs - React Native - 文本在状态栏中 - 如何进一步降低?
- php - 尝试用 PHP 发送电子邮件
- vb.net - 函数 start 不会在所有代码路径上返回值。使用结果时,运行时可能会发生空引用异常
- python - Tornado websocket - 基于事件发送数据
- android - Firebase 聊天应用 setValue 在公共数据库中失败?
- linux - 如何在shell脚本中的变量中收集多行