Git リポジトリのサブディレクトリのクローン

Azhar Bashir Khan 2022年5月31日
Git リポジトリのサブディレクトリのクローン

このチュートリアルでは、Git リポジトリのサブディレクトリを複製する方法を説明します。

バージョン制御システムである Git は、プロジェクトディレクトリに対して行われた変更の履歴を維持します。典型的なプロジェクト開発環境では、さまざまなプロジェクトモジュールをさまざまなサブディレクトリに分離します。

その場合、特定のプロジェクトモジュールサブディレクトリのみをチェックアウトまたはクローン化できます。このような目的で、Git が提供する sparse-checkout 機能を使用できます。

これを例を挙げて説明します。

Git のリポジトリ内のサブディレクトリのクローンまたはチェックアウト

Git は、プロジェクトディレクトリ内のファイルに加えられた変更を追跡するために、共同開発環境で使用されます。プロジェクト開発環境のメインプロジェクトディレクトリ内の別々のサブディレクトリに、さまざまなプロジェクトモジュールを保持します。

Git リポジトリはこのメインプロジェクトディレクトリを追跡するため、プロジェクトディレクトリ全体を複製またはチェックアウトできます。通常、大規模なプロジェクトでは、さまざまなチームがさまざまなプロジェクトモジュールで作業します。

したがって、このような場合、プロジェクトディレクトリ全体をチェックアウトする必要はありません。特定のチームが取り組んでいるプロジェクトモジュールサブディレクトリのみを複製するだけで十分です。

プロジェクト Git リポジトリのサブセットである特定のサブディレクトリ(つまり)のみをクローン化することは、スパースチェックアウトと呼ばれます。スパースチェックアウトでは、Git リポジトリのプロジェクトディレクトリから必要なサブディレクトリのみをチェックアウトできます。

my_project という名前のプロジェクトディレクトリがあるとします。プロジェクトディレクトリ my_project には、frontendbackenddocumentation などの名前のさまざまなモジュールのサブディレクトリがあります。

frontend モジュールサブディレクトリをチェックアウトまたはクローン化するだけです。したがって、最初に、次のようにリポジトリ用のディレクトリを作成します。

$ mkdir my_project
$ cd my_project

プロジェクトディレクトリを作成したら、次のように Git リポジトリを初期化し、リモート URL を追加します。

$ git init
$ git remote add -f origin https://github.com/johndoe/my_project.git

メインプロジェクトディレクトリのサブディレクトリのみをチェックアウトまたはクローン化するには、スパースチェックアウトを有効にする必要があります。

git config コマンドを使用して同じことを実現できます。次のように git config コマンドを使用する必要があります。

$ git config core.sparsecheckout true

これで、チェックアウトするサブディレクトリを Git に伝えることができます。

したがって、frontend サブディレクトリのチェックアウトのみを有効にするには、.git/info/sparse-checkout ファイルにリストする必要があります。

$ echo "frontend/" >> .git/info/sparse-checkout

これで、リモート Git リポジトリからファイルをフェッチできます。

$ git pull origin master

これで、作業ツリーには、メインプロジェクト my_projectfrontend サブディレクトリのみが含まれます。

したがって、Git 内の Git リポジトリの特定のサブディレクトリのみを複製またはチェックアウトする方法を学習しました。

詳細については、次の Web サイトをご覧ください。

  1. git-init
  2. git-read-tree
  3. git-sparse-checkout

関連記事 - Git Clone