サブモジュールを管理するコマンド
「git submodule」コマンドは、「スーパープロジェクト」から「サブモジュール」を管理するコマンドです。「git submodule」コマンドの機能を大別すると、以下のようになります。
- サブモジュールを追加する
- サブモジュールの状態を表示する
- サブモジュールを初期化する
- サブモジュールを更新する
- サブモジュールのコミットサマリーを表示する
- サブモジュールを一括操作する
- サブモジュールの情報をローカルに反映する
- 登録したサブモジュールを抹消する
サブモジュールを追加するコマンドの説明
「git submodule」コマンドは、「リポジトリー」に「サブモジュール」を追加することができます。コマンドのフォーマット
コマンドのフォーマットは以下のようになります。
git submodule <情報出力オプション> add <オプション> <リポジトリー> <ワーキングディレクトリーのパス>
このコマンドの基本的な使い方は、以下を参考にしてください。
情報出力オプション
情報の出力に関するオプションです。いずれのオプションも省略できます。
エラーメッセージのみ出力する(-q, --quiet)
このオプションを指定すると、エラーメッセージのみ出力します。ブランチに関するオプション
ブランチに関するオプションです。いずれのオプションも省略できます。
ブランチを指定してチェックアウトする(-b, --branch)
ブランチを指定してチェックアウトします。デフォルトでは、「サブモジュール」の「HEAD」が指すブランチをチェックアウトします。
このオプションを指定すると、チェックアウトするブランチを指定できます。
また、デフォルトの「リモートトラッキングブランチ」として記録されます。
このオプションの使用例は、「チェックアウトするブランチを指定して、サブモジュールを追加する」を参考にしてください。
サブモジュールに関するオプション
「サブモジュール」に関するオプションです。いずれのオプションも省略できます。
gitignoreの設定を無視する(-f, --force)
追加する「サブモジュール」の「ワーキングディレクトリー」の配置場所が「gitignore」の対象になっていても、「サブモジュール」の追加を可能にします。このオプションの使用例は、「gitignoreの設定を無視して、サブモジュールを追加する」を参考にしてください。
サブモジュール名を指定する(--name)
サブモジュール名を指定します。デフォルトでは、リポジトリーのURIを元に自動的にサブモジュール名が決定されます。
このオプションを指定すると、自分でサブモジュール名を決めることができます。
このオプションの使用例は、「サブモジュール名を指定して、サブモジュールを追加する」を参考にしてください。
クローンに関するオプション
「サブモジュール」をクローンする時に関係するオプションです。いずれのオプションも省略できます。
参照リポジトリーを指定する(--reference)
「参照リポジトリー」を指定します。このオプションの使用例は、「参照リポジトリーを指定して、サブモジュールを追加する」を参考にしてください。
シャロークローンの指定(--depth)
このオプションを指定すると、「シャロークローン」を行います。また、取得するブランチの「スナップショット」の世代を、数値で指定します。
このオプションの使用例は、「シャロークローンを指定して、サブモジュールを追加する」を参考にしてください。
リポジトリー
「サブモジュール」として追加するリポジトリーを指定します。このオプションは省略できません。
リポジトリーの指定方法は、以下を参考にしてください。
- ローカルプロトコル(ファイルパス)を使用して、リモートリポジトリーをクローンする
- ローカルプロトコル(URI)を使用して、リモートリポジトリーをクローンする
- HTTPプロトコルを使用して、リモートリポジトリーをクローンする
- SSHプロトコルを使用して、リモートリポジトリーをクローンする
- Gitプロトコルを使用して、リモートリポジトリーをクローンする
リポジトリーの明示について
オプションの記述方法によっては、「サブモジュール」として追加するリポジトリーの指定が、別のオプションの指定として解釈されることがあります。このような状況では、リポジトリーの前に「 -- 」を記述します。
例えば、以下のような記述になります。
git submodule add -- git://192.168.56.1/mySubProject
ワーキングディレクトリーのパス
「サブモジュール」の「ワーキングディレクトリー」のパスを指定します。このオプションは省略できます。
デフォルトのワーキングディレクトリーのパス
デフォルトでは、「サブモジュール」の「ワーキングディレクトリー」のパスは、コマンドを実行した時のカレントディレクトリーが基準のパスになります。その基準パスの中に、「サブモジュール」の「ワーキングディレクトリー」となるフォルダーを生成します。
フォルダー名は「サブモジュール」として追加するリポジトリーのURIから自動的に設定されます。
ユーザーが指定することもできる
「サブモジュール」の「ワーキングディレクトリー」のパスを、ユーザーが指定することもできます。このオプションの使用例は、「ワーキングディレクトリーのパスを指定して、サブモジュールを追加する」を参考にしてください。
サブモジュール名も変わる
「サブモジュール」の「ワーキングディレクトリー」を指定すると、サブモジュール名も「ワーキングディレクトリー」のパスを元に変更されます。サブモジュール名を別途指定したい場合は、上記の「--name」オプションも指定してください。