これまで TFS で管理していた大規模なプロジェクトがいくつかありますが、使用するにはそれらを git に転送する必要があります。
しかし、転送プロセス中にいくつかの問題が発生しました。
たとえば、TFS にはコア プロジェクトがあり、他の多くのプロジェクトがこのコア プロジェクトを参照します。 GIT では、各プロジェクトはリポジトリです。では、リポジトリはどのように相互に参照するのでしょうか?
概略図を描きました:
サブモジュールとサブツリーを試してみました。参照されたプロジェクトのコードがメインプロジェクトのリポジトリにコピーされるため、コードのコピーが多数存在します。 GIT を TFS のようにする方法はありますか? プロジェクトがどれだけ相互に参照していても、コードは 1 つだけであり、保守が簡単です。
現在のプロジェクト構造はおおよそ次のようなものです:
GIT を使用すると、product_core コードが何度もコピーされます。コードの複数のコピーをコピーせずにプロジェクトを自動的に参照するソリューションはありますか?
Java プロジェクトの場合は、使用することをお勧めします。
Maven
或者gradle
管理项目依赖,再用git管理项目工程。当然Maven
,gradle
非 Java プロジェクトも管理できます。少し検索すると、この質問はタイトルに似ています:
http://programmers.stackexchange.com/questions/114719/organizing-git-repositories-with-common-nested-sub-modules
私の理解では、さまざまなモジュールが結合されているということです。しかし、それは避けられない場合もあります。
パブリックコンポーネントやコードの変更は最小限にする必要があります。モジュール式なので、複数のプロジェクトを 1 つのプロジェクトに減らすことはお勧めできません
管理すること。現在、多くの言語には独自のサードパーティ コンポーネントがあり、これらのプラグインも git のみを使用します
管理者は、安定バージョンをリリースし、将来コンポーネントが更新されたときにプロジェクト内で更新します。
コアが基本プロジェクトに相当することは理解していますが、この参照関係をソース コード レベルで維持する必要があるのはなぜですか?プロジェクトのソース コードは比較的独立している必要がありますが、このように結合する目的は何ですか?
Maven はこの仕事に慣れていませんか?なぜソースコードレベルで引用する必要があるのでしょうか?
複数のブランチに分かれた開発構造はすぐにばらばらになってしまいます