清理一个膨胀的Git Repo W / BFG

时间:2017-10-03 00:07:13

标签: git github gitlab bfg-repo-cleaner

我的公司网站有一个Git仓库,其中包含一些包含大量二进制文件(PDF,MP3等)的目录。当然,这导致了一个非常大的回购,这使得克隆它非常不切实际。许多分支机构都有大量的提交。

我已经确定BFG Repo-Cleaner(这似乎简化了这个过程)作为我想从我的仓库中删除这些二进制文件的方法。但是,在运行BFG之前,我不理解从我的存储库的HEAD中删除这些文件的正确过程(假设您最近的提交已从历史记录中删除了要清理的所有文件)。

为了澄清,我的git索引和工作树目前都存在于网站的文档根目录中。我想从存储库中删除的文件需要保留在Document Root中的位置。当我下拉后续更改时,如何告诉Git忘记这些目录而不删除它们?

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

如果audio目录中有大量MP3文件,则可以执行以下操作:

  1. 将MP3文件的副本放在其他地方。
  2. git rm audio/*.mp3暂存他们
  3. echo "*.mp3" >> .gitignore让git在将来忽略MP3文件
  4. git add .gitignore暂存忽略文件
  5. git commit提交更改
  6. 现在MP3文件将不再是HEAD,但如果你把它们放回audio目录,git会忽略它们。

    免责声明:我没有测试这个确切的序列,您可能需要先提交删除,然后在单独的提交中更新.gitignore,但我不这么认为。