GitHub の指定リポジトリから指定フォルダのみを clone する
Git 特定のフォルダのみcloneする - Qiita を参考にした。
やりたいこと
stakiran/text というリポジトリに対し、knowledge というフォルダだけを clone したい。
コマンドライン
hide は秀丸エディタだけどお好きなエディタで。ここでは「knowledge」という行を追加した。
$ git clone https://github.com/stakiran/text $ cd text $ git config core.sparsecheckout true $ hide .git\info\sparse-checkout knowledge $ git read-tree -m -u HEAD
ここまで実行すると、text 配下のフォルダが knowledge のみになる。
どういう仕組みなん?
git-read-tree やら git merge やら git checkout やらは Sparse checkout という仕組みを持っていて、指定したディレクトリを管理対象から除外できる。やり方は $GIT_DIR/info/sparse-checkout
に除外したいディレクトリを書いておくだけ。ちなみに .gitignore と同じ文法。
参考: Sparse checkout