[Git] リモートブランチや履歴を維持したまま別リポジトリへコピーする方法

背景

既存リポジトリから新規リポジトリへのお引越し案件。リポジトリを複製するようなイメージ。

手順

下記をそれぞれ作成しておくことになる。

  • git@github.com:サンプル/既存リポジトリ.git
  • git@github.com:サンプル/新規リポジトリ.git

SSH だけじゃなく HTTPS でも同じようにコピーは可能。

引越し先のリポジトリを作成

git@github.com:サンプル/新規リポジトリ.gitを作成。

リポジトリのクローンを作成する

$ git clone --bare git@github.com:サンプル/既存リポジトリ.git

ローカル環境に既存リポジトリ.gitが作成される。

新規リポジトリをミラープッシュする

前述で作成された既存リポジトリ.gitへ移動し、引越し先のリポジトリに push する。

$ cd 既存リポジトリ.git
$ git push --mirror git@github.com:サンプル/新規リポジトリ.git

これで完成。
最後に不要になったrm -rf 既存リポジトリ.gitを削除する。