メインコンテンツまでスキップ

サブモジュール(Git Submodule)

概要

サブモジュールを含むリポジトリ構成で、NDGit の操作対象リポジトリや表示対象リポジトリを切り替えながら、Git 操作を一貫して行うことを支援します。

サブモジュールイメージ

本ページでは、サブモジュールを含む環境での NDGit の使い方を、次の順で説明します。

  • 体験シナリオ(1〜3)
  • 基本用語と考え方
  • 表示対象リポジトリを設定する
  • カレントリポジトリを切り替える
  • ブランチ切り替えとサブモジュール追従
  • リポジトリの更新(フェッチ/プル/同期)
  • 差分・履歴の確認時の注意点
前提
  • Git のリポジトリ環境/構成(サブモジュール設定を含む)は、Next Design の外で構築済みであることを前提とします。

体験シナリオ(1〜3)

サブモジュール運用の全体像を掴むために、代表的な流れをシナリオとして示します。

シナリオ1:リポジトリをクローンしてサブモジュールを初期化する

サブモジュールを含むリポジトリを初めて扱う場合は、クローン直後からサブモジュールが利用できる状態にしておきます。

操作の流れ

  1. リボンの [Git] > [リポジトリ] > [クローン] をクリックします。
  2. [リポジトリのクローン] ダイアログで [URL] と [ディレクトリ] を指定して、[OK] ボタンをクリックします。
  3. クローン完了後、サブモジュールが利用できるよう初期化が実行されます。
備考
  • クローン操作の詳細は リポジトリのクローン を参照してください。
  • サブモジュール初期化に失敗している場合は、本ページ末尾の「サブモジュールの初期化」を参照してください。

シナリオ2:ブランチ同期と作業対象リポジトリ設定

マルチリポジトリ(サブモジュールを含む)構成で、対象ブランチへ切り替えた後、作業対象(カレント)を切り替える流れです。

操作の流れ

  1. Next Design で、対象プロジェクトを開きます。
  2. 必要に応じて、表示対象リポジトリを設定します。(詳細はこちら)
  3. ルート(親)リポジトリをカレントリポジトリにします。(詳細はこちら)
  4. ブランチを切り替えます。オプションが ON の場合、サブモジュール参照先のコミットも合わせて切り替わります。(詳細はこちら)
  5. ブランチ切り替え後、必要に応じてプロジェクトのリロード確認に従って最新状態へ同期します。
  6. 自分の担当リポジトリをカレントリポジトリに切り替えて、作業を開始します。
備考
  • サブモジュール運用では、オプション「ブランチ変更時にサブモジュールのブランチも合わせて変更する」を ON にする運用を推奨します。
    親リポジトリのブランチ切り替え時にサブモジュールが自動追従し、親とサブモジュールの整合性を維持できます。

シナリオ3:担当リポジトリ内での設計変更

担当リポジトリ(カレントリポジトリ)で設計変更を行い、差分確認やコミット/プッシュまでを NDGit 上で実施する流れです。

操作の流れ

  1. Next Design で、対象プロジェクトを開きます。
  2. NDGit が更新有無を検知した場合は、最新化(フェッチ/プル/同期等)を行います。(詳細はこちら)
  3. 担当範囲の設計変更を行います。
  4. 変更をステージングし、コミットしてプッシュします。(詳細はこちら)
  5. 必要に応じて、以前のコミットと比較して変更差分を確認します。(詳細はこちら)
  6. 必要に応じて、マージや変更の取り消し(リバート/破棄等)を行います。(関連はこちら)

基本用語と考え方

サブモジュールを含む構成では、次の考え方で操作対象を整理します。

  • 表示対象リポジトリ
    • Git ナビゲータに表示し、一覧操作(更新/プル/プッシュ/フェッチ等)の対象になり得るリポジトリです。
    • 初期値は「プロジェクトファイルが所属するリポジトリ」です。
  • カレントリポジトリ
    • ステータスバーや Git 操作の中心として扱うリポジトリです。
    • 表示対象リポジトリの中から 1 つだけ選択できます。
  • 非表示リポジトリ
    • 表示対象として選択していないリポジトリです。
    • ただし、変更がある場合は Git ナビゲータ上に一時的に表示されることがあります。
注記
  • サブモジュールがない場合、単一のリポジトリが常にカレントになります。

表示対象リポジトリを設定する

サブモジュールを含む構成では、Git ナビゲータに表示したいリポジトリ(サブモジュールを含む)を選択して運用します。

サブモジュールイメージ

操作手順
  1. リボンの [Git] > [リポジトリ] > [表示リポジトリを設定] をクリックします。
  2. 表示された一覧から、Git ナビゲータに表示したいリポジトリにチェックを付けて確定します。

カレントリポジトリを切り替える

カレントリポジトリを切り替えることで、ステータスバー表示や、コミット履歴ダイアログ等で参照するリポジトリを切り替えられます。

カレントリ��ポジトリを切り替える

操作手順

Git ナビゲータから操作する場合:

  1. Git ナビゲータで、カレントにしたいリポジトリのノードを探します。
  2. 右端の三点リーダーをクリックします。
  3. [カレントリポジトリにする] をクリックします。

ステータスバーからカレントリポジトリを切り替える

操作手順

ステータスバーから操作する場合:

  1. ステータスバーに表示されているカレントリポジトリ名をクリックします。
  2. 表示されたリポジトリ一覧から、カレントにしたいリポジトリを選択します。
注意
  • カレントリポジトリは、表示対象リポジトリの中からのみ選択できます。

ブランチ切り替えとサブモジュール追従

サブモジュールを含む構成では、ブランチ切り替え時に「操作対象リポジトリだけを切り替える」か「サブモジュールも含めて一貫して切り替える」かを運用で選択します。

  • オプション [ブランチ変更時にサブモジュールのブランチも合わせて変更する] が ON の場合、操作対象リポジトリのブランチ切り替えに合わせて、サブモジュール参照先のコミットも切り替えます。
  • OFF の場合は、操作対象リポジトリのみを切り替えます。
推奨設定
  • サブモジュール運用では ON を推奨します。
    OFF の場合、サブモジュール参照が切り替わらず、親リポジトリが期待する組み合わせにならない場合があります。

リポジトリの更新(フェッチ/プル/同期)

表示対象リポジトリが複数ある場合、表示対象リポジトリに対する一括操作が利用できます。

参照
注意
  • Git 操作(プル等)の完了後、開いているプロジェクトに変更があった場合はリロード確認が表示されます。操作完了までの間は、編集を避けてください。

差分・履歴の確認時の注意点

サブモジュールを含む構成では、どのリポジトリの履歴/差分を見ているかを意識して操作してください。

  • コミット履歴は、カレントリポジトリのものを表示します。
  • 「直前のコミットと比較」等の比較操作は、プロジェクトファイルが所属するリポジトリ以外がカレントの場合、利用できないことがあります。
参照