Commonスタンドアロンで使用でき、プロジェクトP1やで使用されるライブラリがあるとするとP2、必要なツリーは次のようになります。
/Common/.git
...
/P1/.git
.gitmodules # points to remote server
Common/
...
/P2/.git
.gitmodules # points to remote server
Common/
...
に変更を加えるときは、コミットする前にを使用し/Commonてテストできるようにしたいと思います。通常のコマンドセットでは、からコミットし、リモートにプッシュしてから、との両方からプルする必要があります。コミットが何かを壊した場合、悪い変更はすでに公開されているため、修正することはできません。または、リモートサーバーに触れずにプルできるようにすることもできます。しかし、これには矛盾の可能性がたくさんあり、壊れたコミットを削除してで修正できるようにするのは汚いです。P1P2git submodule/Common/P1/Common/P2/Commongit remote add quicktest /Common/P?/Common/P?/Common/Common
開発中は、作業ツリーをと/Commonで使用したいのですが、シンボリックリンクがディレクトリとは異なるものとして認識されるため、シンボリックリンクを作成できません。ディレクトリのハードリンクは、ほとんどのファイルシステムでは許可されていません。を使用してすべてのファイルをハードリンクできますP1P2/P1/Common/Commongit submodule
rm -rf /P1/Common
cp -rl /Common /P1/Common
これは、新しいファイルが追加されるまでは非常にうまく機能します。追加さ/Commonれた場合は、このプロセスを繰り返す必要があります。両方にエレガントな方法はありますか
git clone --recursive git://remote/P1.gitエンドユーザーのために働き続け、そして- との
/Common作業の変化を簡単にテストできますか?P1P2