【GIT】非常に重たいrepositoryをcloneする方法

このところ業務でやたらと重たいリポジトリを扱うことが多いので、重たいリポジトリを clone して、 remote branch から branch 切ったり commit したり、 push したり、できるようにする clone の仕方をメモ。

いきなり全履歴を落とさず直近の履歴だけをおとし、最終的に全履歴落とす方法。

terminal でコマンド打ちます。

まず直近1つの履歴のみで clone します

git clone --depth 1 {リポジトリのurl}
  • {リポジトリのurl} は適宜URLに置き換えてください

ひとまず clone ができたら次は履歴をちょっとずつ fetch する

fetch するにはそのリポジトリフォルダの中に移動します。

cd {クローンしたフォルダ}

以下コマンドでカレントがクローンしたフォルダになっているか確認

pwd

クローンしたフォルダに入っているのを確認して、以下のコマンドを実行

git fetch --depth 10
git fetch --depth 100
  • 数は履歴の数。少しずつ増やして最終的には全部落としました

最後まで落とした時にこの表示になった

remote: Total 0 (delta 0), reused 0 (delta 0)

 しかしこれまでだと fetch や他の remote branchcheckout ができないので以下のコマンドを入力

git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"

そのあと

git fetch --all

でリモートブランチも取得、チェックアウトでき、利用できるようになる。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.