読者です 読者をやめる 読者になる 読者になる

ksaitoの日記

日々試したことの覚え書き

既存のgitリポジトリを短時間でコピーする。

既存のgitリポジトリを短時間でコピーする方法です。

ローカルにクローン

ブランチを指定して最新コミットに限定してクローンします。

$ git clone --depth 1 -b <ブランチ名> <URL>

リモートにプッシュ

自分用のリポジトリにプッシュするとrejectされます。

$ git remote add origin <URL>
$ git push origin <ブランチ名>
...
 ! [remote rejected] <ブランチ名> -> <ブランチ名> (shallow update not allowed)
error: failed to push some refs to <URL>
$

部分的にクローンしたgitリポジトリ--unshallowオプションでpush可能なリポジトリに変換します。

再度、pushします。

$ git fetch --unshallow
$ git push origin <ブランチ名>
Counting objects: 227, done.
Compressing objects: 100% (97/97), done.
Writing objects: 100% (227/227), 66.44 KiB | 0 bytes/s, done.
Total 227 (delta 132), reused 214 (delta 129)  
To <URL>
 * [new branch]      <ブランチ名> -> <ブランチ名>
$