破坏性git操作对github forks有什么影响?

时间:2013-05-29 06:42:18

标签: git github

我在github上托管的项目有点臃肿:

https://github.com/ColinEberhardt/PropertyCross/

回购现在大约160 MBytes。我想做一些清理工作,将一些文件移动到一个单独的仓库中,这样克隆主仓库的“成本”就会变小。我已经研究过如何做到这一点,我很高兴git允许我从存储库索引中删除文件夹,减少整体大小。我也知道这是一种破坏性的行动。

我的问题是,如果我执行此操作,并强行推送到github,那么分配项目的人会受到什么影响?如果他们对他们的fork做了更改并且提出拉取请求,我仍然可以合并它们吗? (我不介意手动这样做。)

或者,它会导致他们的叉子无用吗?

1 个答案:

答案 0 :(得分:1)

您的存储库实际上是70 MB(正如您在https://github.com/tastejs/PropertyCross/issues/189中所说的那样)。这是git存储库的打包大小,不包括工作目录的大小。

这个大小被克隆了。即使您的网站/目录,您的存储库大小约为70 MB。您在提交1faf01c04cb46df893592268407c3d84c403592f中删除的所有代码仍在存储库中,并且可以返回。每个克隆版仍会下载此内容。

要减少git-repo大小,您可以运行git gc。它会为你清理一些东西。要真正从您的仓库中删除内容(例如一起删除网站目录),您需要使用类似git filter-branch的内容。你可以在这里找到一个很好的教程https://confluence.atlassian.com/display/BITBUCKET/Maintaining+a+Git+Repository

还有一些其他技巧可以尝试重新计算您的存储空间(git repackgit gc --aggressive等)。我尝试了你的存储库上的那些,并且无法使其低于70 MB的大小。实际上我的尺寸更差(72 MB)。我猜你的存储库已经很好了。