Mic*_*ael 5 git version-control tfs git-subtree monorepo
我们最近决定从TFVC迁移到Git,我正在尝试寻找设计新Git架构的最佳方法。
我们的代码由独立但紧密耦合的模块组成,让我们看一下以下项目:
CommonLib1
CommonLib2
ApplicationA(使用CommonLib1)
ApplicationB(用途CommonLib1&CommonLib2)
虽然CommonLib1/ CommonLib2是完全独立的,几乎每一个新功能ApplicationA/ ApplicationB需要修改CommonLib1/ CommonLib2。
此外,在添加新功能时,我们希望创建一个跨我们所有项目的分支。
据我了解,我还有两个主要选择:
为每个项目创建一个仓库,并在/中添加CommonLib1/ CommonLib2作为子树。ApplicationAApplicationB
为所有项目创建一个Monorepo。
对于我的情况,最佳的Git实践是什么?
由于CommonLib1/CommonLib2与密切相关ApplicationA/ApplicationB,因此您\xe2\x80\x99d最好使用选项2(为所有项目创建单个Monorepo)。分支结构可以如下:
Lib1CommonLib1分支:在此分支中管理/开发/更新。当它\xe2\x80\x99s更新时,你可以将它合并到分支appA中appB。
Lib2CommonLib2分支:在此分支中管理/开发/更新。当它\xe2\x80\x99s更新时,你可以将它合并到appB分支中。
appA分支:管理/开发ApplicationA项目。
appB分支:管理/开发ApplicationB项目。