IMO submodulesを使用して、クライアントの詳細(アセットなど)を分離する必要があります。それを手動で処理することは災害への誘いです
クライアントごとに別々のリポジトリを作成し、コアを指すサブモジュールと、それらの間で共有されるその他のものを追加します。クライアント間で共有されないコードは、コアに属している必要はなく、他の共有サブモジュールにも属している必要はありません。これは、クライアントに対応する各(現在の)ブランチが別個のリポジトリになる必要があることを意味します。結局のところ、彼らはお互いに独立しており、それは全体のポイントです。
あなたは、このリポジトリの階層になってしまいます:
core
/\
/\
client1 client2
UPDATE:
重要:何かがうまくいかない場合は、トラブルに見舞われないように、バックアップのすべて。
すべてこれはシナリオによって大きく異なります。
1)は、様々なリポジトリにあなたの現在のリポジトリを分割し(例:コア、CLIENT1、クライアント2、など):
しかし、次は私がWindows以外のシステムで説明したものを実現する方法のアイデアがあります
cp -R original_repo copy_repo
cd copy_repo
git checkout desired_branch
git filter-branch --prune-empty --subdirectory-filter desired_directory -- --all
各クライアントディレクトリについてもこれを繰り返します。この手順の最後に、これらの各部分(コア、クライアント1、クライアント2など)ごとに別々のリポジトリを作成します。
2)
は、あなたのclient1..clientNリポジトリのそれぞれにサブモジュールとして、新たな分割コアリポジトリを追加します。
git submodule add <path_for_core_alone>
git submodule init # Add the submodule to .git/config
git submodule update # Clone the core repository
3)コーヒー&利益。
IMOでは、サブモジュールを使用してクライアントの詳細(アセットなど)を分離する必要があります。それを手動で処理することは災害への招待です。 – jweyrich
私はすべてのオプションについています。あなたが何を意味しているのかも説明してください。 – jondavidjohn
私はそれを議論することができるように私は本当の答えとしてそれを掲示し、私はそれに応じて更新されます。 – jweyrich