GitHub上のリポジトリを別のリモートリポジトリへコピーしたり、移動したいケースがあると思います。
この記事では、GitHubの既存のリモートリポジトリを、別のリモートリポジトリへコピーする方法をご紹介します。
mirrorオプションを使用するとブランチやコミット履歴などもすべてコピーできます。特定のソースを起点に、別々の開発や運用を行う必要が出てきた時などに便利です。
事前準備
既存のリポジトリをコピー(もしくは移動)するには、受け皿となるリポジトリをあらかじめ作成しておく必要があります。
手順の例では、既存のリモートリポジトリ「hgh_main_develop」を別リポジトリ「new_main_develop」へコピーします。
- 既存のリモートリポジトリ「hgh_main_develop」
- 別リポジトリ「new_main_develop」
既存のリモートリポジトリをコピー・移動する手順
既存のリモートリポジトリを別のリポジトリへコピーするには次の手順で操作します。
*コピー先のリポジトリの内容は、上書きされてしまうので注意してください。
- リモートリポジトリをmirrorオプションを使用してcloneします。以下のコマンドを実行します。
$ git clone --mirror
- 【実行例】
–mirrorオプションを付けると「.git」ディレクトリのみがコピーされるので注意してください。
- 【実行例】
- 作成された「.git」ディレクトリへcdコマンドを使用して移動します。
$ cd .git
- 【実行例】
- 設定されているリモートリポジトリを変更します。
clone直後はoriginにコピー元のURLが設定されています。以下のコマンドを実行してoriginに設定されているURLを変更します。
git remote set-url origin
- 【実行例】
コピー先のURLは、GitHubブラウザでコピー先のリポジトリを開いて緑色のボタン「Clone or download」をクリックすると表示させることができます。
- 【実行例】
- 以下のコマンドを実行してコピー先のリポジトリへpushします。ここでもmirrorオプションを付けることに注意してください。
$ git push --mirror origin
- 【実行例】
- 【実行例】
操作手順は以上となります。これで、リモートリポジトリの複製が完了しました。
コミット履歴やブランチも複製されていることが確認できます。
以上、GitHubで既存リモートリポジトリを別へコピー(複製)・移動する方法でした。
この記事のテーマに戻る
GitHubの使い方
コメント
とても参考になり助かりました。ありがとうございました。