kledgeb UbuntuやLinuxの最新情報を紹介

Ubuntu Git その265 - スーパープロジェクトの役割・コミットIDを更新するには

スーパープロジェクトの役割

  「スーパープロジェクト」の役割は、「サブモジュール」の状態の管理です。

  サブモジュールの管理

    「サブモジュール」がどの「リモートリポジトリー」と関連付けられているのか、「サブモジュール」がどのような状態になっているのか、などを管理します。

    例えば、「.gitmodules」ファイルはその一例です。


    「git status」コマンドによる「サブモジュール」の状態表示もその一例です。


    また、「サブモジュール」の追加や削除も「スーパープロジェクト」の役割です。

  サブモジュールのクローンを行う

    「サブモジュール」の「リモートリポジトリー」を「ローカルリポジトリー」にクローンするのは、「スーパープロジェクト」の役割です。

    「サブモジュール」の「リモートリポジトリー」のクローンは、自動的には行われません。

    ユーザーは必要に応じて、「サブモジュール」の一部もしくは全てを、クローンする必要があります。

    どの「リモートリポジトリー」をクローンすればよいかは「スーパープロジェクト」が把握しているため、クローンの実行は簡単です。

サブモジュールのコミット管理

   「スーパープロジェクト」は「サブモジュール」のコミット状況も管理しており、どの「コミットオブジェクト」から「サブモジュール」のプロジェクトのファイル群をチェックアウトすればよいのかを管理しています。

  コミットID

    この「コミットオブジェクト」を識別する情報を「コミットID」といいます。
    「コミットID」は「サブモジュール」ごとに存在し、「スーパープロジェクト」で管理する情報です。


    「コミットID」は、ある特定の「コミットオブジェクト」を指します。

  コミットIDの役割

    「コミットID」は、「スーパープロジェクト」が「サブモジュール」の「リモートブランチ」をクローンする時など、「スーパープロジェクト」が「サブモジュール」をチェックアウトする時に使用されます。

    「コミットID」が指す「コミットオブジェクト」からプロジェクトのファイル群が、「サブモジュール」の「ワーキングディレクトリー」に展開されます。

  コミットIDとHEAD

    「コミットID」は、「サブモジュール」の「HEAD」とは別の管理になります。
    従って「サブモジュール」でコミット行っても、「スーパープロジェクト」が管理する「サブモジュール」の「コミットID」は更新されません。

    この点は注意が必要です。
    「サブモジュール」でコミットを行った際、ユーザーは必要に応じて「コミットID」を更新し、「サブモジュール」の「HEAD」が指す「コミットオブジェクト」の識別子を「コミットID」に設定する必要があります。

    「サブモジュール」の「HEAD」相当の情報を、「スーパープロジェクト」が個別に管理しているイメージでしょうか。

コミットIDを更新するには

  「コミットID」を更新する方法です。

  1.コミットIDの状態

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


  2.サブモジュールで作業する

    「サブモジュール」で作業を行い、「サブモジュール」でコミットを行いました。


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

    「スーパープロジェクト」の「ワーキングディレクトリー」の状態を確認すると、以下のように「サブモジュール」でコミットが行われ、「コミットID」が指す「コミットオブジェクト」と「サブモジュール」の「HEAD」が指す「コミットオブジェクト」が異なっていることが分かります。


  4.コミットIDの状態

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


  5.コミットIDの更新準備

    「スーパープロジェクト」で「ステージングエリア」に「サブモジュール」を追加します。


    これで「コミットID」更新準備は完了です。

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

    「スーパープロジェクト」で「ワーキングディレクトリー」の状態を確認すると、以下のようになっています。


  7.コミットする

    「スーパープロジェクト」でコミットします。


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

    コミット後、「スーパープロジェクト」で「ワーキングディレクトリー」の状態を確認すると、以下のようになっています。


  9.コミットIDの状態

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



Git
スポンサー
コメント
コメントポリシー
コメントをする前に UbuntuのCode of Conduct(CoC/行動規範) を確認し、CoCに沿ったコメントをお願いします。
コメントの使い方は、コメントの使い方を参照してください。
同一カテゴリーの記事
SNS
人気の記事
  • Ubuntu 26.04 その74 - Chromium 系ブラウザーにより、Qt6 で構築されたアプリがクラッシュする現象
    Qt6 で構築されたアプリがクラッシュする現象 Chromium 系ブラウザーにより、Qt6 で構築されたアプリがクラッシュする現象が報告されています。
  • Ubuntu 24.04 その104 - Ubuntu 26.04 LTS へアップグレードするには・アップグレードの注意事項
    Ubuntu 26.04 LTS へアップグレードするには 現在 Ubuntu 24.04 LTS を利用しているユーザーは、Ubuntu 26.04 LTS へアップグレードできます。
  • Ubuntu 26.10 その35 - RISC-V 向け Ubuntu Desktop 登場
    RISC-V 向け Ubuntu Desktop 登場 Ubuntu Desktop 26.10 では、RISC-V 向けデスクトップイメージがリリースされます。
  • Ubuntu 26.10 その38 - Ubuntu 26.10 がリリースされました・ディスクイメージのダウンロード
    Ubuntu 26.10 リリース 2026年10月15日、Ubuntu 26.10 がリリースされました。
  • Ubuntu 26.10 その33 - Ubuntu 26.10 β版がリリースされました・ディスクイメージのダウンロード
    Ubuntu 26.10 β版がリリースされました 2026年10月1日、Ubuntu 26.10 β版 がリリースされました。
  • Ubuntu 26.04 その76 - CVE-2026-92392 含む curl の脆弱性22件修正・アップデートを
    curl の脆弱性22件修正 CVE-2026-92392 含む22件の curl の脆弱性に対応したセキュリティーアップデートがリリースされました。
  • Ubuntu 26.10 その34 - Ubuntu と Rust に対する取り組み(2026年10月)
    Ubuntu と Rust に対する取り組み 2026年10月1日、Ubuntu と Rust に対する取り組みが以下で紹介されました。
  • Ubuntu 24.04 その103 - Ubuntu 26.04 LTS へアップグレード可能に・2年分の変化が一気にやってくる
    Ubuntu 26.04 LTS へアップグレード可能に 2026年9月29日、Ubuntu 24.04 LTS から Ubuntu 26.04 LTS へアップグレード可能になりました。
  • Linux その440 - uutils coreutils 0.11.0 でコマンド実行時のエラーメッセージを大幅に改良
    コマンド実行時のエラーメッセージを大幅に改良 uutils coreutils 0.11.0 で、コマンド実行時のエラーメッセージが大幅に改良されました。
  • Ubuntu 26.10 その32 - Snapdragon X2 に対応した Ubuntu 26.10 実験版登場
    Snapdragon X2 に対応した Ubuntu 26.10 実験版登場 2026年9月29日、Snapdragon X2 に対応した Ubuntu 26.10 実験版が登場しました。
記事のピックアップ
オプション