このところ業務でやたらと重たいリポジトリを扱うことが多いので、重たいリポジトリを clone して、 remote branch から branch 切ったり commit したり、 push したり、できるようにする clone の仕方をメモ。
いきなり全履歴を落とさず直近の履歴だけをおとし、最終的に全履歴落とす方法。
terminal でコマンド打ちます。
clone したいカレントディレクトリに移動
以下コマンドで現在いるディレクトリを確認します。
pwd
terminal を立ち上げてすぐだと、だいたい以下のパスになっていると思いますが
/Users/{ユーザー名}
これを cd コマンドでクローンしたいフォルダに移動します
cd /Users/{ユーザー名}/{クローンしたいフォルダ}
tips
clone したいフォルダの階層にすでに clone してできるフォルダと同じ名前のフォルダが存在しているとエラーになるので被っているフォルダ名がないか注意
まず直近1つの履歴のみで clone します
git clone --depth 1 {リポジトリのurl}
- {リポジトリのurl} は適宜URLに置き換えてください
 - 例) 
git clone --depth 1 https://hogehoge.com/fugafuga.git 
ひとまず clone ができたら次は履歴をちょっとずつ fetch する
fetch するにはそのリポジトリフォルダの中に移動します。
cd {クローンしたフォルダ}
以下コマンドでカレントがクローンしたフォルダになっているか確認
pwd
クローンしたフォルダに入っているのを確認して、以下のコマンドを実行
git fetch --depth 10
git fetch --depth 100
- 数は履歴の数。少しずつ増やして最終的には全部落としました
 
最後まで落とした時にこの表示になった
remote: Total 0 (delta 0), reused 0 (delta 0)
 しかしこれまでだと fetch や他の remote branch に checkout ができないので以下のコマンドを入力
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
そのあと
git fetch --all
でリモートブランチも取得、チェックアウトでき、利用できるようになる。