我们有一些大项目,以前一直用的TFS管理,现在需要转移到git来使用。
但是转移的过程中遇到一些问题。
比如,在TFS里面,我们有一个核心项目,其他很多项目都会引用这个核心项目。在GIT里面,每个项目就是一个repo,所以repo之间如何互相引用呢?
我画了一个示意图:
我试过submodule和subtree,他们都会在主项目的repo下拷贝一份引用的项目的代码,这样代码就会有很多份。GIT有没有一种方式能像TFS一样,无论多少个项目互相引用,都只有一份代码,而且很好维护?
目前我们的项目结构大概是这样的:
如果用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 はこの仕事に慣れていませんか?なぜソースコードレベルで引用する必要があるのでしょうか?
複数のブランチに分かれた開発構造はすぐにばらばらになってしまいます