LoginSignup
54
52

More than 5 years have passed since last update.

Git: リモートのリポジトリを別のリモートリポジトリへコピーする

Last updated at Posted at 2018-05-21

Bitbucketのリポジトリを、別のすでに作成されたリポジトリへのコピーをする方法です。

※これからリポジトリを新規作成する場合は「リポジトリのインポート」機能を使いましょう。

仮に以下のリポジトリを使うこととして進めます。

  • 移行元: bitbucket.org:user_a/abc.git
  • 移行先: bitbucket.org:user_z/xyz.git

手順概要

  1. リモートリポジトリのbearをミラーオプションでクローン
  2. originのPush先を移行先に切り替え
  3. 移行元に変更があれば取り込み
  4. 移行先にすべてを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されていた場合はすべてなかったことになるので注意。

参考:Mirroring a repository in another location

54
52
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
54
52