1

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

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

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

任何帮助深表感谢。谢谢!

4

1 回答 1

0

如果您的目录中有大量 MP3 文件audio,您可以这样做:

  1. 将 MP3 文件的副本放在其他地方。
  2. git rm audio/*.mp3将它们分阶段进行移除
  3. echo "*.mp3" >> .gitignore让 git 将来忽略 MP3 文件
  4. git add .gitignore暂存忽略文件
  5. git commit提交更改

现在 MP3 文件将不再位于 HEAD 上,但如果将它们放回audio目录中,git 将忽略它们。

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

于 2017-10-03T00:14:57.400 回答