git clone するとガッツリとれちゃうんだ。
でも、git ってそういうもんだし、git フォルダを git でネストすりゃいいんだけど。。。
git で特定のフォルダだけを取り出したい。
github.com が不可視のプライベート・レポジトリの数に上限があるので、どうしてもgitレポジトリの数を増やせないとか。だから特定フォルダを取り出したいとかね。
git 初心者が混じってると、なんでも全部突っ込んできてツライ。もちろん教育が必要なんだけど、先輩を教育するのも忍びないし、何よりまだソコまで至ってなかったり。。。とりあえず、管理してる全部のサイトを一個のgit フォルダに突っ込んだりしちゃうんだよ。
SVNを使ってたりしたので、全部を入れなきゃダメって思ってるところあるし
そういう時に、まとめてcloneしたり、ずっとデータをダウンロードしてくるのはつらいものがある。
そんな時に git sparse-checkout
sparse ってのは英語で、断片的とか、まだらとか、ガラガラって意味ですね。
使い方簡単
cd path/to/git/clone/repository git config core.sparsecheckout true echo "path/to/include/only/this/directory" > .git/info/sparse-checkout git read-tree -m -u HEAD
解説
最初に git clone されたディレクトリに入って。
git config コマンドで、設定を書く
つぎに、これだけは必要ってディレクトリを設定に書く
最後に、それ以外を全部消す。
ってことです。
メリット
ディレクトリ内検索や、システム全体検索(lcoate/grep や spotlight/mdfind 、Windows Search Indexer )が余計なファイルを検索しなくなる。
余計なファイルを弄っちゃうおそれも少なくなる。
デメリット
このやり方でも、初回 clone は除けなさそう。
そもそも「見せてないだけ」なのでコミット履歴やファイルのやりとりは普通に発生します。