我有一个 GitHub 存储库,其中包含一些我想从其历史记录中永久删除的大文件。我已经克隆了
GitHub 有一个不错的页面,可用于删除此类大文件(https://help.github.com/articles/remove-sensitive-data)。所以,我克隆了我的 GitHub 存储库,仔细按照该页面的说明进行操作,果然我的本地存储库的大小现在要小得多。
因此,从那里开始,我想我接下来会使用以下命令将所有内容强制推送回我的 GitHub 存储库:
git push --force --all
我检查了我的 GitHub 存储库的 SHA-1 值和我的本地克隆的值,它们都匹配。从那里开始,我想我会克隆我的“新”GitHub 存储库并检查它的大小,认为它与我原来的克隆相同,但是......它是!
经过一番调查,我的 GitHub 存储库中的(关闭的)拉取请求引用了我删除的一些大文件。因此,这些文件仍然存在。(据我所知,GitHub 中可能还有其他东西仍然引用了我的部分/全部大文件。)
那么,我需要做些什么才能让我的 GitHub 存储库与我的本地存储库一样小?(假设它可以完成!)
我的意思是,想要“清理”我的 GitHub 存储库的整个想法是,想要/需要克隆它的人最终会得到一个小的克隆,而现在它仍然相对较大。
FWIW,要创建一个新的 GitHub 存储库,将我的“干净”存储库推送到它确实会产生一个新的“小型”(GitHub)存储库,但是......它不会有所有的问题、评论、拉取请求、叉子等我当前的 GitHub 存储库,因此它不是我的选择。如果有的话,我很乐意丢失拉取请求(并且可能还有其他任何引用我的部分/全部大文件的内容),但问题是它是否真的可以完成?...
FWIW #2,我知道一个 Python 脚本可以将问题从一个 GitHub 存储库转移到另一个(https://github.com/mkorenkov/tools/blob/master/gh-issues-import/gh-issues-import.py),但它对我不起作用(缺少一些问题等)。