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

コミットIDの代わりに、リモートトラッキングブランチを使用する

  デフォルトでは、「サブモジュール」更新時に「サブモジュール」で使用する「コミットオブジェクト」は、「コミットID」が指す「コミットオブジェクト」です。

  「コミットID」の代わりに「リモートトラッキングブランチ」が指す「コミットオブジェクト」を指定することもできます。


リモートトラッキングブランチの指定方法

  「リモートトラッキングブランチ」の指定方法です。
  「リモートトラッキングブランチ」の指定は、設定ファイルに記述します。

  設定ファイル

    設定ファイルは、以下のいずれかです。

  1. リポジトリーの設定ファイル(config)
  2. .gitmodulesファイル

    両方の設定ファイルに「リモートトラッキングブランチ」の指定を記述した場合、「リポジトリーの設定ファイル(config)」に記述されている「リモートトラッキングブランチ」の指定が優先されます。

  ブランチ名のみ指定する

    設定ファイルに記述する「リモートトラッキングブランチ」は、ブランチ名のみ記述します。

    「リモートリポジトリー」名は記述しません。
    「リモートリポジトリー」名は、「サブモジュール」の現在のブランチから自動的に取得されます。

  リモートトラッキングブランチの指定を省略した場合

     「リモートトラッキングブランチ」の指定を省略した場合、「master」が指定されます。

  フェッチが行われる

     「リモートトラッキングブランチ」を更新してから「サブモジュール」の更新を行うため、事前に「サブモジュール」のフェッチが実行されます。

    オプションでフェッチを抑制することもできます。

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

    リポジトリーの設定ファイルに記述する方法です。
    「config」ファイルに「リモートトラッキングブランチ」の指定を記述します。



    「submodule.サブモジュール名.branch」設定にブランチ名を記述します。
    例えば「master」ブランチを指定する場合、以下のように記述します。


  2.gitmodules 

    「.gitmodules」ファイルに記述する方法です。


    「submodule.サブモジュール名.branch」設定にブランチ名を記述します。
    例えば「master」ブランチを指定する場合、以下のように記述します。


コマンドの実行環境

  ここでは、例として使用する環境を紹介します。

  1.サブモジュールのブランチの状態

     「サブモジュール」のブランチの状態は、以下のようになっています。


    「HEAD」が指すブランチは「fix」ブランチなので、現在のブランチは「fix」ブランチであることが分かります。

  2.コミットIDの確認

    「サブモジュール」の「コミットID」は、以下のようになっています。


  3.サブモジュールのブランチとコミットIDの構成

    「サブモジュール」のブランチと「コミットID」の構成を図にすると、以下のようになります。


コミットIDを使用して、サブモジュールをチェックアウトする

  比較のため、まずはデフォルトの動作である「コミットID」を使用して、「サブモジュール」をチェックアウトしてみます。

  1.サブモジュールのチェックアウト 

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

git submodule update --checkout


  2.サブモジュールのブランチの状態

    「サブモジュール」チェックアウト後に「サブモジュール」のブランチの状態を見てみます。
    「分離したHEAD」が指す「コミットオブジェクト」の識別子と、「コミットID」が指す「コミットオブジェクト」の識別子が同じです。


リモートトラッキングブランチを使用して、サブモジュールをチェックアウトする

  次に「リモートトラッキングブランチ」を使用して、「サブモジュール」をチェックアウトしてみます。

  指定する「リモートトラッキングブランチ」は、「origin/master」です。

  1.コマンドの実行

    コマンドのオプションは、以下のオプションを指定します。

オプション
--remote

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

    ポイントは、赤字の箇所です。

git submodule update --remote --checkout
 

  2.コマンドの実行結果

    以下のように、「リモートトラッキングブランチ」が指す「コミットオブジェクト」から、「サブモジュール」がチェックアウトされます。


  2.サブモジュールのブランチの状態

    「サブモジュール」チェックアウト後に「サブモジュール」のブランチの状態を見てみます。
    「分離したHEAD」が指す「コミットオブジェクト」の識別子と、「origin/master」が指す「コミットオブジェクト」の識別子が同じです。



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