かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

Git リモートリポジトリを変更する時のメモ

Bitbucket で管理してたリポジトリGitHub に移した時のメモ

かつて GitHub でプライベートリポジトリに制限がある時に Bitbucket 大変お世話になっていました。
個人的に GitHub の方が web サイト上での方が取り回しがよく現在もメンテしているリポジトリGitHub に移させてもらいました

現在のリモートリポジトリの状況を確認

git remote -v で現在登録されているリモートリポジトリが確認できる

$ git remote -v
origin  git@bitbucket.org:USER/MY_PROJECT.git (fetch)
origin  git@bitbucket.org:USER/MY_PROJECT.git (push)

古いリモートリポジトリ (Bitbuckt) を origin 以外に移す

git remote add <リモート名> <リモートブランチのURL> でリモートブランチを登録できるので、バックアップ的に Bitbucket のリポジトリ情報を退避させておく
リモート名を bitbucket として登録した

$ git remote add bitbucket git@bitbucket.org:USER/MY_PROJECT.git
# 登録を確認
$ git remote -v
bitbucket   git@bitbucket.org:USER/MY_PROJECT.git (fetch)
bitbucket   git@bitbucket.org:USER/MY_PROJECT.git (push)
origin  git@bitbucket.org:USER/MY_PROJECT.git (fetch)
origin  git@bitbucket.org:USER/MY_PROJECT.git (push)

bitbucket ブランチ名 でアクセスできるようになる

$ git fetch bitbucket main
From bitbucket.org:USER/MY_PROJECT
 * branch            main     -> FETCH_HEAD

新しいリモートリポジトリ (GitHub) を origin に設定する

git remote set-url <リモート名> <リモートブランチのURL> で既に存在するリモートリポジトリの変更をすることができる
今回はデフォルトで使用する originGitHubリポジトリに変更したいので次のような感じ

$ git remote set-url origin git@github.com:USER/MY_PROJECT.com.git
# origin が変更されていることを確認
$ git remote -v
bitbucket   git@bitbucket.org:USER/MY_PROJECT.git (fetch)
bitbucket   git@bitbucket.org:USER/MY_PROJECT.git (push)
origin  git@github.com:USER/MY_PROJECT.com.git (fetch)
origin  git@github.com:USER/MY_PROJECT.com.git (push)
# GitHub 履歴を移行
$ git push -u origin main

これで以降 git push origin 〜GitHub に向かうようになります
過去のブランチの情報を残す必要がなければ直接 origin を上書きしてしまって良いと思います

おわり ₍ ᐢ. ̫ .ᐢ ₎


[参考]