我们最近决定从tfvc转向git,我正试图找到设计新git架构的最佳方法。
我们的代码由独立但紧密耦合的模块组成,让我们看看以下项目:
CommonLib1
CommonLib2
ApplicationA(使用CommonLib1
ApplicationB(使用CommonLib1&CommonLib2
尽管CommonLib1/CommonLib2是完全独立的,但几乎每个ApplicationA/ApplicationB的新功能都需要修改CommonLib1/CommonLib2
此外,在添加新功能时,我们希望创建一个分支,该分支将跨越所有项目。
据我所知,我还有两个主要选择:
为每个项目创建一个repo,并在CommonLib1/CommonLib2中添加ApplicationA/ApplicationB作为子树。
为所有项目创建一个monorepo。
对于我的情况,什么是最好的git实践?

最佳答案

因为CommonLib1/CommonLib2ApplicationA/ApplicationB密切相关,所以最好使用option2(为所有项目创建单个monorepo)。分支结构如下:
Lib1分支:管理/开发/更新此分支中的CommonLib1。更新后,您可以将其合并到appAappB分支中。
Lib2分支:管理/开发/更新此分支中的CommonLib2。更新后,您可以将其合并到appB分支中。
分公司:管理/开发项目。
分公司:管理/开发项目。

08-26 22:30