GitでCloneしようとしたらなぜか失敗する場合以下のコマンドでcloneできる場合があります。
原因は大きなファイルがコミットされていてサーバー側でエラーになったりしているようです。
$ git clone --depth 1 https: //hogehoge |
上記のクローンの仕方をshallow cloneと言うそうですが、この状態でリモート(サーバー)にあるmaster以外のブランチを落とそうとした時にできません。
そんな時には、以下の手順でリモートのブランチをチェックアウトできます。
方法
- リモートのブランチが作成された状態までコミット履歴を取得する
- .git/configにリモートブランチの情報を書き込む
- fetchする
リモートのブランチが作成された状態までコミット履歴を取得する
ブラウザなどで目的のブランチが枝分かれしたコミットを探して、そこまで遡ってコミットを取得します。
$ git fetch --depth 20 # 20階層下まで履歴を取得 |
.git/configにリモートブランチの情報を書き込む
.git/configを開くを以下のようになっています。
注目するのはorigiセクションでここにfetch = +refs/xxxxとありますがここにフェッチしたいブランチを追記します。
: [remote "origin"] fetch = +refs/heads/master:refs/remotes/origin/master # hogeブランチを追加する fetch = +refs/heads/hoge:refs/remotes/origin/hoge # ----- ここまで ------ [branch "master"] remote = origin merge = refs/heads/master : |
fetchする
ここまでの状態でもう一回fetchすると目的のブランチが表示されるようになります。
$ git fetch |
あとはいつも通りブランチを切り替えることができます。
0 件のコメント :
コメントを投稿