【问题标题】:Impact on storage when forking a repository分叉存储库时对存储的影响
【发布时间】:2021-09-23 18:12:23
【问题描述】:

场景:拥有 100 多名开发人员的主存储库

在 100 多个开发人员分叉父 repo 的情况下,是否对 Github 存储空间有重大影响,或者每个开发人员拥有自己的 repo 分叉,然后对父 repo 进行 PR 是否是一种有效的策略?

我查看了其他几个可能与此问题相关的线程,但只能发现分叉共享对象以最大限度地减少存储使用量。但是,我无法确定大规模(数百个分叉)的影响程度以及这是否会显着占用可用存储空间。

【问题讨论】:

  • 分叉,还是克隆?通常不需要叉子。这会创建一个单独的仓库。
  • 分叉。建议使用此策略以防止分支混乱;开发人员不会删除已经合并的分支,还有一些其他问题我不会详细介绍。创建分叉后,开发人员可以在本地创建更改并将其推送到自己的存储库中。这使得只有基本分支将存在于主存储库中。但随之而来的问题是,这种方法是否会占用大量存储空间。
  • 谢谢。在 VonC 回答您说的是在 Gibhub 的存储之前,我并不清楚。这不是我以前遇到过的事情,所以不在我的脑海中。我做了一个小修改来帮助别人。

标签: git github github-enterprise


【解决方案1】:

GitHub 上的分叉不会复制(在 GitHub 服务器端)完整的存储库,正如 Vicent Martí 在 2015 年的“Counting Objects”中所解释的那样。

我们很早就发现实际上分叉人们的存储库是不可持续的。

例如,在 GitHub 上托管了近 11,000 个 Rails 分支:如果每个分支都是自己的存储库副本,这将意味着大量冗余磁盘空间,需要的文件服务器比我们的文件服务器多几倍在我们的基础架构中。

这就是为什么我们决定使用 Git 的一个名为 alternates 的功能。

当您在 GitHub 上创建一个存储库时,我们会为其创建一个浅表副本。
这个副本 没有自己的对象,但它可以访问备用对象的所有对象, 我们称为network.git 的根存储库,其中包含所有对象 网络中的分叉。

【讨论】:

  • 如果我错了请纠正我,这些浅拷贝只会引用根存储库的对象,所以没有真正的对象重复发生?
  • 没错,就是这样。
猜你喜欢
  • 2021-11-22
  • 2019-04-13
  • 2022-07-19
  • 2014-06-20
  • 2023-01-25
  • 2017-08-18
  • 2013-04-18
  • 2020-12-30
  • 1970-01-01
相关资源
最近更新 更多