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