破坏性git操作对github分支的影响是什么?



我有一个在github上托管的项目,它变得有点臃肿:

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

repo现在大约是160mbytes。我想做一些清理工作,把一些文件移到一个单独的仓库中,这样克隆主仓库的"成本"就会小一些。我已经研究了如何做到这一点,我很高兴git允许我从存储库索引中删除文件夹,从而减小了总体大小。我也知道这是一个破坏性的操作。

我的问题是,如果我执行这个操作,并强制推送到github,对已经分叉项目的人有什么影响?如果他们对他们的分支进行更改并发出拉取请求,我仍然可以合并它们吗?(我不介意手动操作)。

或者,它会导致它们的分叉是无用的吗?

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

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

要减少git-repo的大小,可以运行git gc。它会帮你解决一些问题。要真正从你的repo中删除东西,(比如把网站目录全部撕下来),你需要使用像git filter-branch这样的工具。你可以在这里找到一个很好的教程https://confluence.atlassian.com/display/BITBUCKET/Maintaining+a+Git+Repository

还有一些其他的技巧来尝试重新计算您的存储(git repack, git gc --aggressive等)。我在您的存储库中尝试了这些,但无法将其大小设置为70 MB以下。实际上我得到了一个更糟糕的大小(72 MB)。我猜您的存储库已经打包得很好了。

最新更新