我不确定描述这一点的最佳方式 - 我已经做了一些谷歌搜索,但可以使用。
我目前有一个具有以下内容的解决方案:
Repository 1
ProductProject1
ProductProject2
ProductProject3
SharedCodeProject1
SharedCodeProject2
我目前遇到的问题是,如果任何开发人员想要在 ProductProject1 上工作,他们必须克隆为他们提供 ProductProject1、2 和 3 的整个存储库。
这一直很好,但是直到最近我正在招聘更多的开发人员,我真的希望他们只专注于 3 个产品项目之一并专注于那个。
我很好奇其他人如何处理这种情况?只允许开发人员像我一样克隆整个存储库吗?
我提出的解决方案是...
可能的解决方案 1
设置单个存储库,如下所示:
Repository1
ProductProject1
SharedCodeProject1
SharedCodeProject2
Repository2
ProductProject2
SharedCodeProject1
SharedCodeProject2
Repository3
ProductProject3
SharedCodeProject1
SharedCodeProject2
优点:代码更精简,只将开发人员暴露给他们负责的 ProductProject
缺点:经过深思熟虑后,我意识到每个存储库SharedCodeProject1
中SharedCodeProject2
基本上会有混合版本,而事实上它们应该并且可以在所有存储库中保持相同。
可能的解决方案 2
设置单个存储库,如下所示:
Repository1
ProductProject1
Repository2
ProductProject2
Repository3
ProductProject3
Repository4
SharedCodeProject1
SharedCodeProject2
优点:老实说,我什至不确定这种结构是否可行,因为存储库 1 - 3 中会有大量损坏的引用(除非有一些我不知道的神奇设置) - 但是,理论上奖金是SharedCodeProject1 和 2 是集中式的,因此更新所有开发人员的任何开发人员都可以接收并重用这些更新(特别是对于作为 sharedcodeproject 之一的 DB 层和其他共享代码项目中的业务逻辑)
缺点:在同步之前,所有存储库都不会真正实现重大更改(这有意义吗)
我很难找到完成这项工作的最佳方法。我希望这是有道理的,如果我能澄清一下,请告诉我。
我只是好奇其他公司如何在 github 上构建大型解决方案,就像这样,同时试图将开发人员的访问权限限制在特定项目中。
非常感谢!