🐙

容量が大きいリポジトリを部分的にgit cloneする方法

に公開

概要

RayCastの拡張機能を作りたいなと思い、RayCastの拡張昨日のリポジトリをクローンしようとしたのですが、容量が大きくて全然終わらないので部分的にクローンする方補を調べたのでメモとして残します。

RayCastの拡張機能のリポジトリ
https://github.com/raycast/extensions/tree/main

方法

git clone --filter=blob:none --sparse git@github.com:raycast/extensions.git
cd extensions
git sparse-checkout init --cone
git sparse-checkout set examples images

上記のコマンドではgit sparse-checkout setの部分でexamplesimagesディレクトリのみを指定してクローンしています。
ただ、この場合否定をできないみたいなので、容量が大きいextensionsディレクトリを除外してクローンする場合は以下のようにします。

git clone --filter=blob:none --sparse git@github.com:raycast/extensions.git
cd extensions
git sparse-checkout init --no-cone
git sparse-checkout set '/*' '!extensions/'

このコマンドでは、git sparse-checkout set '/*' '!extensions/'extensionsディレクトリを除外してクローンしています。
最初'/*'を指定せずに実行したのですが、この場合は何もクローンされなかったので、おそらくデフォルトでは何も対象にしていないのだと思います。

Discussion