gitignoreの設定を無視して、サブモジュールを追加する
「gitignore」の設定を無視して、「サブモジュール」を追加します。デフォルトでは、「サブモジュール」の「ワーキングディレクトリー」の配置場所が「gitignore」の対象になっていると、「サブモジュール」が追加できません。
もし「gitignore」の対象になっていても、「gitignore」の設定を無視して「サブモジュール」を追加することができます。
gitignoreの例
まずは比較のため、「gitignore」の対象になっているパスに「サブモジュール」を追加してみます。1.ワーキングディレクトリーの確認
「スーパープロジェクト」の「ワーキングディレクトリー」は、以下のようになっています。「.gitignore」ファイルが配置されています。
2.gitignoreの内容
「.gitignore」ファイルの内容は、以下のようになっています。「my」で始まるフォルダーやファイルは、「Git」の管理対象から外しています。
3.サブモジュールの追加
「サブモジュール」を追加すると、以下のようにエラーになります。これは、「サブモジュール」の「ワーキングディレクトリー」である「mySubProject」フォルダーを、「スーパープロジェクト」の「ワーキングディレクトリー」に作成するのですが、「gitignore」により「mySubProject」フォルダーが「Git」の管理対象になってしまうためです。
gitignoreの設定を無視して、サブモジュールを追加する
「gitignore」の設定を無視して、「サブモジュール」を追加します。上記手順の「2.」までは同じです。
3.コマンドの実行
コマンドのオプションは、以下のオプションを指定します。ショートオプション | ロングオプション |
---|---|
-f | --force |
「端末」から、以下のコマンドを実行します。
コマンドの詳細は、「サブモジュールを追加するコマンドの説明」を参考にしてください。
ポイントは、赤字の箇所です。
git submodule add --force git://192.168.56.1/mySubProject
4.コマンドの実行結果
以下のように「サブモジュール」が追加され、「サブモジュール」のクローン及びチェックアウトが実行されます。5.サブモジュールの状態
「スーパープロジェクト」から「サブモジュール」の状態を確認すると、以下のようになります。「サブモジュール」の「HEAD」が指す「コミットオブジェクト」と、現在のブランチが表示されます。
6.ワーキングディレクトリーの状態
「スーパープロジェクト」の「ワーキングディレクトリー」の状態を見てみます。「サブモジュール」の「ワーキングディレクトリー」である「mySubProject」フォルダーと「.gitmodules」ファイルが「ステージングエリア」に追加されています。
7.スーパープロジェクトのワーキングディレクトリーの確認
「スーパープロジェクト」の「ワーキングディレクトリー」を見てみます。以下のように、「mySubProject」フォルダーと「.gitmodules」ファイルが追加されています。
8.サブモジュールのワーキングディレクトリーの確認
「サブモジュール」の「ワーキングディレクトリー」を見てみます。以下のように、「サブモジュール」からチェックアウトされたプロジェクトのファイル群と、「.git」ファイルが配置されています。