大约两个月前,我的一位同事将他的虚拟环境添加到了我们的 Git 存储库中并推送了它。
我在随后的提交/推送中将其删除,并将其添加到 .gitignore。
然而,从那时起,我们已经有大约 500 次提交。
有没有办法我可以从 Github 和我们的本地仓库中完全删除他原来的 90k 行提交而不会造成任何问题?
Github 有一个关于删除适用于您的情况的敏感数据的帮助页面(只有少数 Github 特定的部分可以忽略)。
好消息是您可以删除旧的提交。
坏消息是,您可能会给您的合作者带来麻烦,除非您能够非常有效地传达存储库的整个历史将发生变化。他们将需要根据新的历史重新调整所有工作分支的基础。
您可以从问题之前的提交创建一个分支,并在问题之后的第一次提交上创建一个分支。然后将第二个基于第一个。然后,如果您将 master 重置为指向该分支的新提示,并删除另一行的所有 refs,GC 最终将销毁这些项目。
当然,之后您可能希望重新克隆每个人的 repo,因为这是一个涉及更新大量 refs 的侵入性更改(从您的描述中假设自此 repo 上发生了很多事情)。