GitHub というか Git のお話。
要約
コマンドラインを使った Git リポジトリのインポート をやります 1 。
経緯
GitHub でリポジトリをコピーする一番お手軽な方法は目当てのリポジトリで Fork
ボタンをポチッと押すことです。
ただし、諸事情あってフォークできない (or したくない) 場合は GitHub Importer による自動インポート を試みることでしょう。
でもこれがめちゃんこ遅い…遅くない? (Spoon-Knife に対して自動インポートしたら 2時間くらいかかった。えぇ…)
自動で遅いなら手動だぜー!ということで手を動かしてごにょごにょやります。
今回はコピー元として Spoon-Knife リポジトリを参照します。
準備
コピーの前にコピー先のリポジトリを GitHub 上に作成しておきます。
New repository
からやるいつものやつ です。
リポジトリ名だけ指定したら他の項目はデフォルトで OK です。
コピー元に合わせてリポジトリ名は Spoon-Knife
とします。
リポジトリのコピー
GitHub 公式の手順を参考にしましょう。
$ git clone --bare https://github.com/octocat/Spoon-Knife.git
$ cd ./Spoon-Knife.git
$ git push --mirror https://github.com/<username>/Spoon-Knife.git # <username> は適宜読み替えのこと
$ cd ..
$ git clone https://github.com/<username>/Spoon-Knife.git
git push --mirror
を終えたら Spoon-Knife.git
は用済みなので、特に理由がなければ削除して構いません。
コピー後もコピー元の変更に追従したい場合はコピー元をリモートリポジトリに追加してもいいでしょう:
$ cd ./Spoon-Knife
$ git remote add upstream https://github.com/octocat/Spoon-Knife.git
--bare
なしで git clone
した後にリモートリポジトリを差し替えて…というやり方もできますが、各ブランチを個別に反映する必要があるので少し面倒です。
丸ごとコピーするなら公式の手順でやるのが一番楽だと思います。
おしまり
-
このリンクを貼るための踏み台記事と言っても過言ではない。 ↩