背景
あまり望ましくない、と思いつつ振り返ってみると巨大なレポジトリができてしまうこと、ありますよね。(あることにしましょう)
こういうレポジトリで
- 別のディレクトリで実験を始めたい
- 新しいサーバにcloneしたい
みたいな時にgit clone
にものすごい時間がかかって萎えます。
こんな時のご提案です。
やり方
branch 名指定、depth 1でcloneする
git clone --depth 1 --branch experimental-branch git@github.com:k12u/huge_repo.git experimental_huge_repo
積み重なった黒歴史も見なかったことにしてくれます。
(オプション) config のremote.origin.fetch
を完全体に戻す。
このままだとgit fetch
してもclone時に指定したbranch以外は降りてこないので、
git config remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*'
する。
(オプション) バックグラウンドで fetch --unshallow しておく
(Homebrew のFormuraの履歴をフルでローカルで確認したい場合にも使える模様)
このままでは過去の履歴に遡れないので、
$ git fetch --unshallow
を打つと完全体のレポジトリになれるみたいです。時間がかかるのでバックグラウンドでやっておくといいかも。