gitで複数のプロジェクトファイルを管理していた場合などに、特定のディレクトリ配下だけcloneしたい場合などあると思います。そんな時に便利なgitの使い方があったので紹介します。
特定なフォルダのみをcloneする
空ディレクトリを作る
# 空ディレクトリを作る
$ mkdir sub-directory-name
# 作ったディレクトリに移動する
$ cd sub-directory-name
$ mkdir sub-directory-name
# 作ったディレクトリに移動する
$ cd sub-directory-name
空リポジトリを作って初期化
# 空リポジトリを初期化する
$ git init
$ git init
sparsecheckout を有効にする
#sparsecheckout を有効にする
git config core.sparsecheckout true
git config core.sparsecheckout true
リモートリポジトリの URL を origin として登録
#リモートリポジトリの URL を origin として登録
git remote add origin リポジトリのURL
git remote add origin リポジトリのURL
cloneするディレクトリやファイルを指定する
#cloneするディレクトリを指定する
echo 目的のフォルダ >> .git/info/sparse-checkout
#目的のフォルダの中のサブフォルダを除外する(!で除く事もできる)
echo /* >> .git/info/sparse-checkout
echo !/目的のフォルダ/サブフォルダ >> .git/info/sparse-checkout
※除外の場合:/*が必要です。
#特定のファイルを指定する
echo 目的のフォルダ/目的のファイル >> .git/info/sparse-checkout
echo 目的のフォルダ >> .git/info/sparse-checkout
#目的のフォルダの中のサブフォルダを除外する(!で除く事もできる)
echo /* >> .git/info/sparse-checkout
echo !/目的のフォルダ/サブフォルダ >> .git/info/sparse-checkout
※除外の場合:/*が必要です。
#特定のファイルを指定する
echo 目的のフォルダ/目的のファイル >> .git/info/sparse-checkout
好きなブランチを pull (checkout) する
#好きなブランチを pull (checkout) する
git pull origin master
git pull origin master
追加でほかのディレクトリを取得
# 追加したいディレクトリを追記する
$ echo add-sub-directory >> .git/info/sparse-checkout
# ツリー情報を更新する
$ git read-tree -m -u HEAD
$ echo add-sub-directory >> .git/info/sparse-checkout
# ツリー情報を更新する
$ git read-tree -m -u HEAD