CONTENT
電気圧力鍋を買い、何にでも圧力をかけているデザイナーのKです。
先日データ移行のためSourceTreeを再クローンしたのですが、データが重すぎてタイムアウトしてなかなか完了しませんでした。
解決策としてコマンドでクローンすること(!!)を教えてもらったので、その忘備録兼ねた記事となります。非エンジニアには画面を見るだけで拒否感が否めないコマンドですが要点だけ押さえていればきっと大丈夫!!
【Mac環境/コマンド】
① まずはクローンしたいフォルダに移動する
cd "/Volumes/HDD"
→ 今回は外付けHDDにクローンしたのでこのようなコマンドですが、ローカルの場合は"ダブルクォーテーションの間"をローカルパスに変更してね
② 第一段階のクローン(最初のディレクトリをつくる)
git clone --depth 1 ssh://git@git.xxxxxx/xxxxx/directoriyname.git
→ ssh://git@git〜〜の部分は、Gitのブラウザ画面、Project overview>clone>sshのURLです。
③ ②で作られたディレクトリに移動
cd directoriyname
④ 段階的にリソースを取得する
ここはデータが大きい場合、気長にやっていきましょう
git fetch --depth 5
git fetch --depth 100
git fetch --unshallow
→ --depth は取得する履歴の深さの指定なので、数字はエラーにならない範囲で適宜変更してもOK
→ このときエラーが出ても何回もやり直してOK。少しずつクローンされてます。
(fatal: early EOF が出ていると、だいたい通信のタイムアウトによるエラーらしい)
私の時は20回くらいエラー出て何度もやり直しました。
→ 途中でコマンド画面消えちゃった! という場合は、①③をやって再度チャレンジ。②は不要です。
⑤ SourceTree の「新規」→「既存のローカルリポジトリを追加」でクローンしたフォルダを選択して開く。フェッチができれば完了!!
これまで7時間待って最後にエラー吐くとか、なんの地獄なんだ、、、と思っていたことがコマンドでならサクサクできて感動しました。懇切丁寧に教えてくれたエンジニアさんに感謝!
前回もおすすめしましたが、ちゃんと筋道立てて知りたい! という方にオススメの書籍。
【改訂2版 わかばちゃんと学ぶ Git使い方入門】
SourceTreeを中心に解説している本なので、非エンジニアでSourceTreeの理解度に不安のあるかたにどうぞ。