0

我有一个 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),但它对我不起作用(缺少一些问题等)。

4

1 回答 1

0

清理 git 存储库可能非常困难,因为即使您删除文件,git 仍然会存储它们。可能有更好的方法来做到这一点,但您可能只想从头开始制作一个新的 repo。不要打扰包含永远不会更改的文件,例如视频或图片,也不要包含您的二进制文件。请记住,从 git 存储库中取出文件不会删除它们的数据。

于 2013-05-04T22:06:13.780 回答