我查看了许多相关/类似的问题,但找不到任何足够的答案来回答我的问题。
我有一个 Gatsby/React 项目,我有一个托管在 github 上的私有 git 存储库。我希望能够让自由职业者处理项目的某些部分,但我不希望他们能够看到项目某些部分的源代码(至少是某些模块和组件,甚至可能是项目的主要设置)盖茨比项目)。他们确实需要能够运行和测试他们创建或工作的功能,这意味着他们仍然需要以某种方式访问我不希望他们看到原始代码的模块/组件/配置/等(缩小/丑化就可以了)。
我了解子模块,但这些似乎有很多问题使它们无法用于此目的,主要是:
我可以使用某种设置来解决我的问题并希望避免这些问题吗?
大公司如何限制对其源代码的访问?他们如何限制自由职业者/分包商甚至员工对其代码库的访问?
我读到 Google、Facebook 等公司的所有代码都使用同一个 git monorepo。我无法想象他们会允许他们的开发人员实际拉取并查看他们的 monorepo 中的所有代码。那么他们是如何设置的呢?
我读到 Google、Facebook 等公司的所有代码都使用同一个 git monorepo。我无法想象他们会允许他们的开发人员实际拉取并查看他们的 monorepo 中的所有代码。
他们确实如此。筒仓无法很好地扩展,也许除了苹果公司。 (此外,谷歌、Facebook 等都有一些“伟大的”律师。此外,这些代码库很大,移动速度很快,而且往往被严重分割成离散的微服务。此外,在全球范围内运作良好的方法可能行不通以及较小的东西。) 如果您想让某些开发人员远离代码库的某些部分,那么您唯一的选择是将这些秘密部分放在单独的存储库中。您不一定必须设置子模块或子树 - 您可以将秘密内容定义为库(提供有用的二进制文件),或者可能作为非特权开发人员可以查询的服务 - 但没有办法授予单个 Git 存储库中的选择性读取权限。