重厚長大なgitレポジトリをさらっとcloneして作業し始める

  • 68
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

背景

あまり望ましくない、と思いつつ振り返ってみると巨大なレポジトリができてしまうこと、ありますよね。(あることにしましょう)

こういうレポジトリで

  • 別のディレクトリで実験を始めたい
  • 新しいサーバにcloneしたい

みたいな時にgit cloneにものすごい時間がかかって萎えます。

こんな時のご提案です。

やり方

branch 名指定、depth 1でcloneする

git clone --depth 1 --branch experimental-branch git@github.com:k12u/fuge_repo.git experimental_fuge_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

を打つと完全体のレポジトリになれるみたいです。時間がかかるのでバックグラウンドでやっておくといいかも。