GitHubにあるコードを動かしたくて、Gitでチェックアウトしようとしたとき、欲しくないファイル達を省いて、必要なディレクトリだけ落としたいという時の方法です。
事例
- リポジトリ
 https://github.com/USER_NAME/Repository/
- ファイル構成
 https://github.com/USER_NAME/Repository/Program_src1
 https://github.com/USER_NAME/Repository/Program_src2
 ・・・・・
 https://github.com/USER_NAME/Repository/Program_src100
※Program_src1のソースコードだけ欲しい
cloneすると、基本的に全ディレクトリ、ファイルが同期されます。
 つまり、不要なものを削除すると、削除変更として認識されてしまいます。
sparse-checkout により、実施することができます。
 #ただし、リポジトリはいったんすべてダウンロードするようです。。。
 ダウンロード用量の節約にはならないようです。
手順
- Git initでリポジトリ初期化
- sparsecheckout を有効にする
- リポジトリの URL を origin として登録
- チェックアウトする対象のディレクトリを .git/info/sparse-checkout に追加
- 好きなブランチを pull (checkout) する
コマンド例
上の事例のケースでのコマンドを記載しています。
> git init
> git config core.sparsecheckout true
> git remote add origin ”https//github.com/USER_NAME/Repository.git”
> echo ”Program_src1/” > .git/info/sparse-checkout
> git pull origin masterエラーケース
- ワークディレクトリがない(上のechoで登録したパスがおそらく誤っている)error: Sparse checkout leaves no entry on working directory

コメント