该.gitmodule文件仅指定模块存储库URL.怎么git submodule知道要下载哪个版本?它似乎总是检查出最新版本.那么,开发人员如何确保主项目和子模块之间的兼容性?
我们最近决定从TFVC迁移到Git,我正在尝试寻找设计新Git架构的最佳方法。
我们的代码由独立但紧密耦合的模块组成,让我们看一下以下项目:
CommonLib1
CommonLib2
ApplicationA(使用CommonLib1)
ApplicationB(用途CommonLib1&CommonLib2)
虽然CommonLib1/ CommonLib2是完全独立的,几乎每一个新功能ApplicationA/ ApplicationB需要修改CommonLib1/ CommonLib2。
此外,在添加新功能时,我们希望创建一个跨我们所有项目的分支。
据我了解,我还有两个主要选择:
为每个项目创建一个仓库,并在/中添加CommonLib1/ CommonLib2作为子树。ApplicationAApplicationB
为所有项目创建一个Monorepo。
对于我的情况,最佳的Git实践是什么?