あなたのプロジェクト/サブプロジェクトの詳細はわかりませんので、漠然とした一般的な見解のみを示します。
あなたの問題は特にgitにあるようではなく、プロジェクト/サブプロジェクトの依存関係の管理にあるようです。
最初の警告:あなたが説明していることから、これらのプロジェクトの1つだけのために100以上のプロジェクトによって使用されるサブモジュールの動作を微調整したいと思います。本当にサブモジュールを変更することになった場合(たとえば、他のプロジェクトでも使用されているコードを変更する場合)、テストの地獄に1つの新しい円を入力することになります。サブモジュールがどのように機能するかを確認し、サブモジュールを実際に変更する必要があるのか、それとも1つのプロジェクトに対してのみ微調整する必要があるのかを判断します。
必要な変更が1つのプロジェクトにのみ固有である場合は、これらの変更をプロジェクトに限定して、サブモジュールを変更しないようにしてください。
考えられる1つの方法は、その呼び出しを特定のプロジェクトでラップすることです。たとえば、次の呼び出しを置き換えます。
submodule::do_stuff()
と
function adjust_behaviour(){
result = submodule::do_stuff();
tweak_for_my_project(result);
return result;
}
サブモジュールの動作がパラメーターに応じて実際に変化する必要がある場合は、それを使用するために提供されるインターフェースにこれを表示する必要があります。
例:サブモジュールに関数が含まれていてcomputeThis()
、計算が実際にパラメーターに依存しているweather
場合は、それに応じて動作するように関数を変更することを検討する必要があります:computeThis(weather)
。
または、sumoduleが構成ファイルをロードでき、各プロジェクトが独自のファイルを提供する必要がある場合もあります。