参照リポジトリーを指定して、サブモジュールを追加する
「参照リポジトリー」を指定して、サブモジュールを追加します。1.参照リポジトリー
ここでは例として、以下のリポジトリーを「参照リポジトリー」に指定します。「参照リポジトリー」のパスは、「~/git/mySubProject」です。
2.コマンドの実行
コマンドのオプションは、以下のオプションを指定します。オプション | オプションの値 |
---|---|
--reference | 参照リポジトリーのパス |
「端末」から、以下のコマンドを実行します。
コマンドの詳細は、「サブモジュールを追加するコマンドの説明」を参考にしてください。
ポイントは、赤字の箇所です。
git submodule add --reference ../mySubProject git://192.168.56.1/mySubProject
3.コマンドの実行結果
以下のように「サブモジュール」が追加され、「サブモジュール」のクローン及びチェックアウトが実行されます。4.サブモジュールの状態
「スーパープロジェクト」から「サブモジュール」の状態を確認すると、以下のようになります。「サブモジュール」の「HEAD」が指す「コミットオブジェクト」と、現在のブランチが表示されます。
5.ワーキングディレクトリーの状態
「スーパープロジェクト」の「ワーキングディレクトリー」の状態を見てみます。サブモジュールの「ワーキングディレクトリー」である「mySubProject」フォルダーと「.gitmodules」ファイルが「ステージングエリア」に追加されています。
6.スーパープロジェクトのワーキングディレクトリーの確認
「スーパープロジェクト」の「ワーキングディレクトリー」を見てみます。以下のように、「mySubProject」フォルダーと「.gitmodules」ファイルが追加されています。
7.gitmodulesファイル
「スーパープロジェクト」の「ワーキングディレクトリー」内にある「.gitmodules」ファイルの中身を見てみると、「submodule」セクションにオプションで指定したモジュール名が反映されています。8.サブモジュールのワーキングディレクトリーの確認
「サブモジュール」の「ワーキングディレクトリー」を見てみます。以下のように、「サブモジュール」からチェックアウトされたプロジェクトのファイル群と、「.git」ファイルが配置されています。
9.gitファイル
「.git」ファイルの中身を見てみると、以下のように「サブモジュール」の「Gitディレクトリー」の配置場所が記述されています。10.alternatesファイル
「参照リポジトリー」を指定したため、「サブモジュール」の「Gitディレクトリー」に「alternates」ファイルが生成されています。「alternates」ファイルの配置場所は、「~/git/myCloneProject/.git/modules/mySubProject/objects/info」です。