kledgeb Ubuntuの使い方や日本語化、アプリの使い方を紹介しています。 Ubuntuの最新情報も紹介しています。

サブモジュールを追加する

  「サブモジュール」を追加します。

  1.ワーキングディレクトリー内のファイル

    現状「ワーキングディレクトリー」内のファイル構成は、以下のようになっています。


  2.コマンドの実行

    「端末」から、以下のコマンドを実行します。
    コマンドの詳細は、「サブモジュールを追加するコマンドの説明」を参考にしてください。

git submodule add git://192.168.56.1/mySubProject


  3.コマンドの実行結果

    以下のように「サブモジュール」が追加され、「サブモジュール」のクローン及びチェックアウトが実行されます。


スーパープロジェクトの確認

  「サブモジュール」の追加後の「スーパープロジェクト」の変化を見てみます。

  1.サブモジュールのワーキングディレクトリー

    「スーパープロジェクト」の「ワーキングディレクトリー」内に、「サブモジュール」の「ワーキングディレクトリー」が配置されています。


    「mySubProject」フォルダーが、追加した「サブモジュール」の「ワーキングディレクトリー」です。

  2.gitmodulesファイル

    「スーパープロジェクト」の「ワーキングディレクトリー」内に、「.gitmodules」ファイルが追加されています。


    「.gitmodules」ファイルの中身を見ると、以下のように追加した「サブモジュール」の情報が記述されています。


  3.リポジトリーの設定ファイル

    「スーパープロジェクト」のリポジトリーの設定ファイルにも、「サブモジュール」の情報が記述されています。


    リポジトリーの設定ファイルである「.git/config」ファイルを開くと、以下のように「サブモジュール」の情報が記述されています。


    ここに記述される内容は、上記「2.」で紹介した「.gitmodules」ファイルに記述されている情報が元になります。

    「.gitmodules」ファイルの内容が「.git/config」ファイルに反映され、「Git」は「.git/config」ファイルの記述を元に、「サブモジュール」の管理を行います。

  4.サブモジュールのGitディレクトリー

    「サブモジュール」の「Gitディレクトリー」は、「スーパープロジェクト」の「Gitディレクトリー」に配置されます。

    「スーパープロジェクト」の「.git/modules」フォルダーに、「サブモジュール」の「Gitディレクトリー」が配置されます。


    「mySubProject」フォルダーの中身を見てみると、以下のように「サブモジュール」のリポジトリーが配置されています。


  5.サブモジュールの状態

    「スーパープロジェクト」から「サブモジュール」の状態を確認すると、以下のようになります。


    「サブモジュール」の「HEAD」が指す「コミットオブジェクト」と、現在のブランチが表示されます。

  6.ワーキングディレクトリーの状態

    最後に、「スーパープロジェクト」の「ワーキングディレクトリー」の状態を見てみます。


    「.gitmodules」ファイルが新規に追加されたファイルとして認識されています。
    また「mySubProject」フォルダーも新規に追加されたファイルとして認識されています。

    ただし「mySubProject」フォルダーは、「Git」から「サブモジュール」であると認識されます。

    この後「スーパープロジェクト」でコミットを行い、「スーパープロジェクト」の「リモートリポジトリー」にプッシュすれば、他のユーザーも「サブモジュール」を利用できるようになります。 

サブモジュールの確認

  追加された「サブモジュール」を見てみます。

  1.サブモジュールのワーキングディレクトリー

     上記でも記述した通り、「スーパープロジェクト」の「ワーキングディレクトリー」内に、「サブモジュール」の「ワーキングディレクトリー」が配置されています。


    「mySubProject」フォルダーが、追加した「サブモジュール」の「ワーキングディレクトリー」です。

  2.ワーキングディレクトリーの中身

     「サブモジュール」の「ワーキングディレクトリー」の中身を見てみると、チェックアウトされたプロジェクトのファイル群と、「.git」ファイルが配置されています。


  3.gitファイル

    「.git」ファイルの中身を見てみると、以下のように「サブモジュール」の「Gitディレクトリー」の配置場所が記述されています。


    これは、上記の「4.サブモジュールのGitディレクトリー」のフォルダーのパスを指しています。

  4.ブランチの状態

    「サブモジュール」追加時に、「サブモジュール」のチェックアウトが行われます。
    「サブモジュール」のブランチの状態を見てみると、以下のようになっています。


    「HEAD」は「master」ブランチを指しており、「master」ブランチが現在のブランチであることが分かります。

    またチェックアウトは、「master」ブランチの「ブランチヘッド」が指す「コミットオブジェクト」から、チェックアウトされたことが分かります。


関連コンテンツ
同一カテゴリーの記事
コメント
オプション