6

我们最近决定从 TFVC 迁移到 Git,我正在尝试找到设计新 Git 架构的最佳方式。

我们的代码是由独立但紧密耦合的模块组成的,让我们看一下以下项目:

  • CommonLib1

  • CommonLib2

  • ApplicationA(使用CommonLib1

  • ApplicationB(使用CommonLib1& CommonLib2

尽管CommonLib1/CommonLib2是完全独立的,但几乎 / 的每个新功能都需要修改ApplicationA/ 。ApplicationBCommonLib1CommonLib2

此外,在添加新功能时,我们希望创建一个跨越所有项目的单一分支。

据我了解,我有两个主要选择:

  1. 为每个项目创建一个 repo,并在 / 中添加/CommonLib1作为CommonLib2子树。ApplicationAApplicationB

  2. 为所有项目创建一个 Monorepo。

对于我的情况,最好的 Git 实践是什么?

4

1 回答 1

3

由于CommonLib1/CommonLib2与 密切相关ApplicationA/ApplicationB,所以您最好使用option2为所有项目创建一个 Monorepo)。分支结构可以如下:

  • Lib1CommonLib1分支:在这个分支中管理/开发/更新。更新后,您可以将其合并到appAappB分支中。

  • Lib2CommonLib2分支:在这个分支中管理/开发/更新。更新后,您可以将其合并到appB分支中。

  • appA分支:管理/开发ApplicationA项目。

  • appB分支:管理/开发ApplicationB项目。

于 2017-02-27T01:43:40.997 回答