巨大なGitリポジトリから一部のディレクトリだけpullする

nogajun
nogajun

_

LibreOfficeの日本語翻訳ファイルが必要になったけど、翻訳リポジトリのミラーから全部をCloneするのはちょっと…と思ったのでgit sparse checkoutを試しました。そういえば、小笠原さんのところにも書いてありますね。

git sparse checkoutでググると日本語で解説してるサイトのほとんどが「最初だけは全部Cloneしろ」とか書いてて、なんだそれーと思ったのですが、空リポジトリを作ってそれに追加していく形でも大丈夫でした。

最初にCloneしたいディレクトリを作成して、その中に入ってからgitで初期化以降は、こんな感じ。

 $ git init
 $ git config core.sparsecheckout true
 $ git remote add origin https://github.com/LibreOffice/translations.git
 $ echo "/source/ja" > .git/info/sparse-checkout
 $ git pull origin master

やっぱり初回は時間かかりますね。