在工作中,我们正在开发十几个 Java OSGi 包,每个包都有自己的 git 存储库。从长远来看,所有捆绑软件都将相互独立,这证明了单独的存储库是合理的——尽管现在我们仍然经常同时修改其中的几个。
当我们发布产品(包含所有捆绑包)时,会在每个捆绑包中创建一个新分支,这有点麻烦。因此,我们正在考虑使用 git-submodule 来减轻痛苦(类似于git submodule foreach <cmd>
)。
因此,我们想要的设置将是一个主项目Product
,以及每个包的子模块:
Project/
BundleA/
BundleB/
BundleC/
现在,我花了几个小时阅读我能找到的关于子模块的所有内容,我明白如果我在 中修改内容BundleA
,我必须在 中提交BundleA
、推送,然后提交子模块更改Project
并再次推送。
这显然听起来不是 git-submodule 最初被设计为使用的方式。像这样使用它是否违反最佳实践?还是听起来像是首选替代方案的情况?
欢迎任何其他建议。