サブモジュールを初期化する
「サブモジュール」の初期化を行います。ここでは、以下の流れで「サブモジュール」の初期化を見てみます。
- サブモジュールの初期化前の状態
- サブモジュールの初期化
- サブモジュールの初期化後の状態
1.サブモジュールの初期化前の状態
「サブモジュール」初期化前の状態です。「スーパープロジェクト」をクローンした直後は、この状態になります。
1-1.サブモジュールの状態
まず、「サブモジュール」の状態を見てみます。以下のように、クローン及びチェックアウトされていない「サブモジュール」が2つあることが分かります。
1-2.gitmodulesファイル
「.gitmodules」ファイルに「サブモジュール」の情報が記述されています。「.gitmodules」ファイルの中身を見ると、以下のように「サブモジュール」の情報が記述されています。
1-3.スーパープロジェクトのワーキングディレクトリー
「スーパープロジェクト」の「ワーキングディレクトリー」を見てみます。以下のように、「サブモジュール」の「ワーキングディレクトリー」が配置されています。
「サブモジュール」の「ワーキングディレクトリー」を見てみると、以下のように中身が空になっています。
まだ「サブモジュール」のクローン及びチェックアウトを行っていないためです。
フォルダーの中身は空ですが、このフォルダーは「Git」から見ると、ただのフォルダーではなく、「サブモジュール」の「ワーキングディレクトリー」として認識されています。
1-4.configファイル
「スーパープロジェクト」の「Gitディレクトリー」に配置されている「config」ファイルを見てみます。「config」ファイルの中身を見ると、「サブモジュール」の情報は記述されていません。
これは、「サブモジュール」の初期化を行っていないためです。
2.サブモジュールの初期化
「サブモジュール」を初期化します。ここでは例として、すべての「サブモジュール」を初期化します。
2-1.コマンドの実行
「端末」から、以下のコマンドを実行します。コマンドの詳細は、「サブモジュールを初期化するコマンドの説明」を参考にしてください。
git submodule init
2-2.コマンドの実行結果
以下のように、「.gitmodules」ファイルに記述されている「サブモジュール」の情報が、「config」ファイルに反映されます。以上で「サブモジュール」の初期化は完了です。
注意
「サブモジュール」の初期化は、「.gitmodules」ファイルに記述されている「サブモジュール」の情報を「config」ファイルに反映することです。あくまで、「サブモジュール」を使用するための準備です。
「サブモジュール」のクローンやチェックアウトは行われません。
また、反映される情報は一部の情報です。
3.サブモジュールの初期化後の状態
「サブモジュール」初期化後の状態です。3-1.サブモジュールの状態
まず、「サブモジュール」の状態を見てみます。「サブモジュール」は初期化しましたが、クローン及びチェックアウトされていないため、「サブモジュール」の状態は「1-1.」と同じです。
3-2.スーパープロジェクトのワーキングディレクトリーの状態
「スーパープロジェクト」の「ワーキングディレクトリー」の状態を見てみます。「ワーキングディレクトリー」内のいずれのファイルも変更されていないため、「ワーキングディレクトリー」はクリーンな状態です。
3-3.サブモジュールのワーキングディレクトリー
各「サブモジュール」の「ワーキングディレクトリー」を見てみます。以下のように、「サブモジュール」のクローン及びチェックアウトが行われていないため、フォルダーの中身は空のままです。
3-4.configファイル
「スーパープロジェクト」の「Gitディレクトリー」に配置されている「config」ファイルを見てみます。以下のように、「サブモジュール」の情報が反映されています。