塩焼きブログ

塩焼きに関しての研究内容を公開しています

GitでSVNみたいにリポジトリの特定フォルダのみをcloneする

一旦cloneしてくる必要があるので、巨大なリポジトリなので一部フォルダだけを落としたいといった使い方をしたい人には向いていない。

git clone https://github.com/project/x.git
cd x
git config core.sparsecheckout true
echo infra/web > .git/info/sparse-checkout
git read-tree -mu HEAD

あとからファイルが追加になった場合は以下のように先程追加したファイルを編集してリポジトリを更新する。

vi .git/info/sparse-checkout
git read-tree -mu HEAD

私は個人でやっている複数の細かいアプリケーション郡とそれを支えるインフラ郡の設定ファイルを一つのリポジトリにまとめた時、サーバー側には設定ファイル郡だけをcloneして使うために役立った。

参考

http://qiita.com/icoxfog417/items/8b16681213d0fd33602c