Github上の最新のソースツリーを取得したい場合は普通このようにします。
git clone --depth 1 https://github.com/php/php-src.git
しかしこの方法は下記のように無駄が多いです。
- gitコマンドが必要になる
- git cloneは必ずしも高速ではない
gitコマンドを使わずにHTTPだけでソースコードを取得できないのでしょうか?実はできます。
Githubのアーカイブダウンロード用URLを叩く
実はGithub側でダウンロード用のエンドポイントが用意されています。
これを利用すればHTTPでソースツリーを取得することができます。
curl -sL https://github.com/php/php-src/archive/master.tar.gz -o master.tar.gz && tar xfz master.tar.gz
( master
の代わりに任意のブランチ名やコミットハッシュ値を指定することもできます。)
手元で測定してみたら、git coneするのに比べて2倍ほど速くなりました。
Dockerfileでこの手法を使うと、gitコマンドをインストールしなくて済むのでさらに時間短縮ができます。