git由于二进制文件、图像等被意外提交给它,我们的存储库已经增长到一个笨重的大小。目前 repo 中没有大文件,但 repo 的历史记录中有大文件。
我的计划是从我们的git历史记录中删除这些大文件,并且我找到了许多很好的资源和 SO 答案(https://rtyley.github.io/bfg-repo-cleaner/,如何删除/删除来自 Git 存储库中提交历史记录的大文件?,https://help.github.com/articles/removing-files-from-a-repository-s-history/)。
我的主要问题是我们的 repo(托管在 Bitbucket 上)有许多贡献者,我担心一旦我将大文件从历史记录中删除,我们的贡献者会将push大文件的历史记录备份到远程回购。
具体来说,BFG Repo Cleaner文档指出:
在这一点上,你已经准备好让每个人都放弃他们的旧的 repo 副本,并对好的、新的原始数据进行新的克隆。最好删除所有旧克隆,因为它们会有肮脏的历史记录,您不想冒险推回新清理的存储库。
所以,我的问题是双重的:
- 有没有办法确保从旧的 repo 克隆推送不会重新引入大文件?
- 如果没有,有没有办法阻止旧的克隆推送,从而要求所有贡献者从新的克隆开始?
谢谢!