Bitbucketのリポジトリを、別のすでに作成されたリポジトリへのコピーをする方法です。
※これからリポジトリを新規作成する場合は「リポジトリのインポート」機能を使いましょう。
仮に以下のリポジトリを使うこととして進めます。
- 移行元: bitbucket.org:user_a/abc.git
- 移行先: bitbucket.org:user_z/xyz.git
手順概要
- リモートリポジトリのbearをミラーオプションでクローン
- originのPush先を移行先に切り替え
- 移行元に変更があれば取り込み
- 移行先にすべてをPush
手順
# 1: リモートリポジトリのbearをミラーオプションでクローン
git clone --mirror git@bitbucket.org:user_a/abc.git abc-mirror
# 2: originのPush先を移行先に切り替え
cd abc-mirror
git remote set-url --push origin git@bitbucket.org:user_z/xyz.git
## [確認] Fetchが移行元でPushが移行先の状態になっている
git remote -v
#> origin git@bitbucket.org:user_a/abc.git (fetch)
#> origin git@bitbucket.org:user_z/xyz.git (push)
# 3: 移行元の変更を取り込み
git fetch -p origin
# 4: 移行先にすべてをミラーオプションでPush (強制上書きなので注意)
git fetch -p origin
git push --mirror
リポジトリ利用者にリモートURLを変更してもらう
みんなにリモートURLを切り替えてもらえば完了!
git remote set-url origin git@bitbucket.org:user_z/xyz.git
もし移行元に変更があった場合、手順4を繰り返せば良いが、移行先に何かがPushされていた場合はすべてなかったことになるので注意。