Gitで巨大なリポジトリの一部だけを利用する
履歴の多いリポジトリはクローンに時間がかかる
Gitでリポジトリをクローンする際、履歴が多いと取得に時間がかかる。
必要なコミット数だけ取得する場合は--depthを指定する。
git clone --depth 1 https://github.com/owner/repo.git
--depth付きでクローンしたリポジトリでも、あとから取得する履歴を増やせる。
git fetch --depth 200 origin main
既存の深さに対して追加で履歴を取得する場合は--deepenを使う。
git fetch --deepen 100 origin main
履歴制限を解除して通常の状態に戻す場合は--unshallowを使う。
git fetch --unshallow
ファイルを絞ってチェックアウトする
作業対象のディレクトリやファイルが限定されている場合はsparse-checkoutを使う。
--no-checkoutでクローンして、必要なパスだけ作業ツリーに展開する。
git clone --no-checkout https://github.com/owner/repo.git
cd repo
git sparse-checkout init --cone
git sparse-checkout set docs scripts
git checkout main
単一ファイルを対象にする場合は--no-coneを使う。
git sparse-checkout init --no-cone
git sparse-checkout set README.md config/app.yml
git checkout main
設定したパスを確認するには下記を実行する。
git sparse-checkout list
制限を解除して全ファイルを展開する場合は下記を実行する。
git sparse-checkout disable