6

最近、TFVC から Git に移行することを決定し、新しい Git アーキテクチャを設計するための最良の方法を見つけようとしています。

私たちのコードは、独立しているが緊密に結合されたモジュールで構成されています。次のプロジェクトを見てみましょう。

  • CommonLib1

  • CommonLib2

  • ApplicationA(使用CommonLib1)

  • ApplicationB( CommonLib1&を使用CommonLib2)

CommonLib1/は完全に独立していますが、 /CommonLib2のほとんどすべての新機能はApplicationA/ApplicationBを変更する必要があります。CommonLib1CommonLib2

さらに、新しい機能を追加するときは、すべてのプロジェクトにまたがる単一のブランチを作成したいと考えています。

私が理解している限り、2 つの主なオプションが残っています。

  1. プロジェクトごとにリポジトリを作成し、CommonLib1/CommonLib2をサブツリーとしてApplicationA/に追加しますApplicationB

  2. すべてのプロジェクトに対して 1 つの Monorepo を作成します。

私の状況に最適な Git プラクティスは何でしょうか?

4

1 に答える 1

3

CommonLib1/CommonLib2は と密接に関連しているため、オプション 2 (すべてのプロジェクトに対して単一の Monorepo を作成する)ApplicationA/ApplicationBを使用することをお勧めします。ブランチ構造は次のようになります。

  • Lib1ブランチ: このブランチで管理/開発/更新CommonLib1します。更新されたらappAappBブランチにマージできます。

  • Lib2ブランチ: このブランチで管理/開発/更新CommonLib2します。更新されたら、appBブランチにマージできます。

  • appAブランチ:ApplicationAプロジェクトの管理/開発。

  • appBブランチ:ApplicationBプロジェクトの管理/開発。

于 2017-02-27T01:43:40.997 に答える