HOWTO · Git
Git で特定のフォルダーをプルする
リモート Git リポジトリからプルするフォルダーを指定できます。
この記事では、リモート Git リポジトリから特定のフォルダーをプルする方法を説明します。 このアプローチは、大きなリポジトリからいくつかのファイルを操作したい場合に便利です。
2GB サイズのリポジトリから 1つのフォルダーをダウンロードする時間を大幅に節約できます。 さっそく始めましょう。
Git で特定のフォルダーをプルする
特定のフォルダーを取得するために使用できる最も簡単な方法は、Git の Sparse Checkout 機能を使用することです。 概念を説明することはできますが、このシナリオには例が適切です。
以下の例では、GitHub でホストされているリモート リポジトリがあり、多数のファイルがディレクトリに配置されています。 apps フォルダーをプルして作業します。

以下の手順に従って、apps フォルダーをプルします。
Git Bash で、apps フォルダーを格納するディレクトリを作成します。
$ mkdir Djangp-datta-able
cd コマンドを使用してディレクトリに移動し、Git リポジトリを初期化します。
$ git init
これがローカルリポジトリの現在の内容です。
$ ls -la
total 4
drwxr-xr-x 1 pc pc 0 Aug 31 09:45 ./
drwxr-xr-x 1 pc pc 0 Aug 31 09:44 ../
drwxr-xr-x 1 pc pc 0 Aug 31 09:45 .git/
次に、プルしたいリモート リポジトリをローカル リポジトリに追加します。 実行します:
$ git remote add origin https://github.com/app-generator/django-datta-able.git
それが完了したら、リポジトリで sparse checkout プロパティを有効にすることができます。 以下に示すように、git config コマンドを使用します。
$ git config core.sparsecheckout true
次に示すように、apps フォルダーを sparse checkout プロパティに追加できます。
$ echo 'apps' >> .git/info/sparse-checkout
apps をプル元のディレクトリに置き換えることができます。 sparse checkout 機能に複数のディレクトリを追加することもできます。
残っているのは、リモート リポジトリからプルすることです。 実行します:
$ git pull origin master
上記のコマンドは apps フォルダーを取得し、それをローカル ディレクトリに複製します。 ローカル リポジトリの内容を確認してみましょう。
$ ls -la
total 8
drwxr-xr-x 1 pc pc 0 Aug 31 09:49 ./
drwxr-xr-x 1 pc pc 0 Aug 31 09:44 ../
drwxr-xr-x 1 pc pc 0 Aug 31 09:50 .git/
drwxr-xr-x 1 pc pc 0 Aug 31 09:49 apps/
ローカル リポジトリに apps/ フォルダーがあることがわかります。 ディレクトリを確認すると、次のことがわかります。

そこにあります。 リモート リポジトリから 1つのフォルダーを正常にプルしました。
コードを変更してコミットし、リモート リポジトリにプッシュすることができます。
サインオフする前に、使用できる別の方法があります。これについては後ほど説明します。 ただし、これから説明する方法では、コードを変更してリモートにプッシュすることはできません。
リモート リポジトリをローカル リポジトリに追加した後、git fetch コマンドを実行し、以下に示すように目的のフォルダーをチェックアウトします。
$ git checkout HEAD path/to/your/dir/or/file
上記の方法は Stack Overflow から入手しましたが、リモート リポジトリから特定のフォルダーをプルできることのみを示しています。 変更、コミット、およびリモートへのプッシュバックを行う場合は、sparse checkout 機能を使用します。