Gitで特定のディレクトリだけチェックアウトする(sparse checkout)

Gitで特定のディレクトリだけをチェックアウトするには、sparse checkoutという機能を使います。

「sparse」とは「まばらな」「薄い」といった意味の単語です。

使い方を説明します。

git configでsparse checkoutを有効にする

sparse checkoutを使うには、まず設定でこの機能を有効にする必要があります。

リポジトリのディレクトリ内で以下のコマンドを実行します。

> git config core.sparsecheckout true

.git/info/sparse-checkoutを作る

リポジトリに.git/info/sparse-checkoutというファイルを作り、チェックアウトしたいファイルやディレクトリ名を書きます。

複数のファイル、ディレクトリを指定する場合は1行に一つずつ書きます。

例えば以下のようにします。

/public
/storage

sparse-checkoutの使い方の例

以下はGitHubにあるLaravelのリポジトリから「/public」ディレクトリだけをチェックアウトし、さらに「/config」ディレクトリを追加する例です。

> mkdir laravel
> cd laravel
> git init
> git remote add origin https://github.com/laravel/laravel.git
> git config core.sparsecheckout true
> echo /public > .git/info/sparse-checkout
> git pull origin master
作業ディレクトリに/publicディレクトリだけがチェックアウトされる。

> echo /config >> .git/info/sparse-checkout
> git reset --hard origin/master
作業ディレクトリに/configが追加されます。

以上、sparse-checkoutの説明でした。

タイトルとURLをコピーしました