LoginSignup
8
6

More than 3 years have passed since last update.

GitHub のリポジトリを手作業でコピーする

Posted at

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 した後にリモートリポジトリを差し替えて…というやり方もできますが、各ブランチを個別に反映する必要があるので少し面倒です。
丸ごとコピーするなら公式の手順でやるのが一番楽だと思います。

おしまり


  1. このリンクを貼るための踏み台記事と言っても過言ではない。 

8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6