欠落しているサブモジュールをクローンする

Beginner

This tutorial is from open-source community. Access the source code

はじめに

Git では、サブモジュールはリポジトリ内のリポジトリです。これにより、他のリポジトリをプロジェクトの依存関係として含めることができます。サブモジュールを含む Git リポジトリをクローンするとき、サブモジュールは自動的にクローンされません。これは、プロジェクトをビルドまたは実行しようとするときに問題を引き起こす可能性があります。この実験では、欠落しているサブモジュールをクローンし、コミットをチェックアウトする方法を学びます。

これは Guided Lab です。学習と実践を支援するためのステップバイステップの指示を提供します。各ステップを完了し、実践的な経験を積むために、指示に注意深く従ってください。過去のデータによると、この 中級 レベルの実験の完了率は 75%です。学習者から 100% の好評価を得ています。

欠落しているサブモジュールをクローンする

あなたはサブモジュールを含むプロジェクトを作業しています。プロジェクトをクローンするとき、サブモジュールは自動的にクローンされません。これは、プロジェクトをビルドまたは実行しようとするときに問題を引き起こします。あなたは欠落しているサブモジュールをクローンし、正しいコミットをチェックアウトする必要があります。

この実験では、https://github.com/git/git という名前の Git リポジトリを使用します。このリポジトリには、リポジトリをクローンする際に自動的にクローンされないサブモジュールが含まれています。

欠落しているサブモジュールをクローンし、正しいコミットをチェックアウトするには、次の手順に従います。

  1. リポジトリディレクトリに移動します。
    cd git
    
  2. サブモジュールを初期化します。
    git submodule update --init --recursive
    
  3. サブモジュールの正しいコミット、つまり master ブランチにチェックアウトします。
    git submodule foreach git checkout master
    
    以下が最終結果です。
Submodule 'sha1collisiondetection' (https://github.com/cr-marcstevens/sha1collisiondetection.git) registered for path'sha1collisiondetection'
Cloning into '/home/labex/project/git/sha1collisiondetection'...
Submodule path'sha1collisiondetection': checked out '855827c583bc30645ba427885caa40c5b81764d2'

まとめ

欠落しているサブモジュールをクローンし、コミットをチェックアウトすることは、サブモジュールを含む Git リポジトリを扱う際の重要なステップです。この実験で示した手順に従うことで、プロジェクトが正しくビルドされ、実行されることを確認できます。