提问者:小点点

从历史记录中删除已移动的文件[重复]


我有一个存储库,其中有一个“垃圾箱”文件夹,里面有很多垃圾文件(以前的开发人员出于任何原因想要存储它们)。我想从repo中完全删除它们,因为它们占用了近1.5 GB的空间。我已经看到了这样的问题:从git/GitHub的历史中删除文件夹及其内容,但我的有点不同:最初“垃圾箱”文件在其他地方,所以我需要:

  1. 从“垃圾箱”获取所有文件
  2. 找到历史上所有对他们的引用
  3. 从历史中删除他们的每一个概念

怎么可能做到呢?


共1个答案

匿名用户

您可以使用BFG回购清洁器

BFG是一个更简单、更快速的替代git-filter-分支,用于从Git存储库历史记录中清理不良数据

更快:快10-720倍

更简单:BFG并不特别聪明,而是专注于使上述任务变得容易

例子:

删除名为“my文件夹”的文件夹:

bfg --delete-folders myfolder  my-repo.git

删除所有名为id_rsa或id_dsa的文件:

bfg --delete-files id_{dsa,rsa}  my-repo.git

删除所有大于50兆字节的blob:

bfg --strip-blobs-bigger-than 50M  my-repo.git

删除所有名为“. git”的文件夹或文件-Git中的保留文件名。从Mercurial等其他源代码控制系统迁移到Git时,这些通常会成为问题:

bfg --delete-folders .git --delete-files .git  --no-blob-protection  my-repo.git