私はGITを使用してコンテンツ管理システム(CMS)プロジェクトを管理しています。 CMSは複数のプラグイン(モジュール)を持つことができます。
つまり、基本的に、3種類のリポジトリが必要です。
タイプ1と2の場合、これは単純な基本リポジトリだと思います。しかし、クライアントプロジェクトになると、私は混乱します。
だから問題は:効率的にするためにリポジトリ/ファイル/フォルダをどのように整理する必要がありますか?
あなたが説明したレイアウトは、gitサブモジュールで本当にうまく機能します。 docs を読んで、いくつか試してみることをお勧めします tutorials 。計画で導入される主な違いは、各クライアントリポジトリとクライアントプラグインリポジトリには、1つではなく2つのリモートがあることです。そして、あなたが新しいクライアントプロジェクトを始めたいとき、あなたはする必要があるでしょう
より良いオプションは、同じリポジトリを使用して、クライアントごとにブランチを作成することです。それが私がそれをする方法です。
前の回答に関する短い更新/追加情報:git submodules
アプローチが気に入らない場合、またはこれが理解しにくいと思われる場合は、試してみてください。
git subtrees
(チェック この記事は中程度 )git subrepo
( Github のサブモジュールのより簡単な代替手段)サブモジュールの代わりに別の依存関係マネージャー(RubyのRubyGems、PHPのComposer ...)など)を使用できるかどうかを確認することを忘れないでください。使用と保守が簡単になります。