gitのremote urlを変更する方法(BitbucketからGitHubへの引っ越しを例に)

GiHubの無料プランでプライベートリポジトリが作成可能になってから、それまでBitbucketに置いてあったリポジトリを、機会があるごとにちまちまとGitHubに引っ越しています。この記事では具体的な引っ越し手順をメモがてら書いてみます。

手順1:新しいリポジトリの作成

GitHubに新しいリポジトリを作ります。こんなURLだとしましょう。

https://github.com/username/repository

Bitbucketの旧リポジトリはこういうURLです。

https://bitbucket.org/username/repository

手順2:手元を確認

確認しなくてもいいですがしておいた方が良いと思います。repositoryのディレクトリに移動してリモートURLを確認します。

$ git remote -v
origin  ssh://git@bitbucket.org/username/repository.git (fetch)                                                                                                   
origin  ssh://git@bitbucket.org/username/repository.git (push)

originのfetchとpushがsshでBitbucketになっていることを確認しました。

手順3:originを変える

git remote set-url [--push] <name> <newurl> というコマンドを発行します。<name> には origin を、<newurl> にGitHubで新しく作ったリポジトリのURLを入れます。

$ git remote set-url origin git@github.com:username/repository.git
origin  git@github.com:username/repository.git (fetch)
origin  git@github.com:username/repository.git (push)

URLはSSH形式の場合、リモート URL をリポジトリに変更するを見ると、

git@github.com:username/repository.git
または
ssh://git@github.com/username/repository.git

どちらでも良さそうです。ssh:// をつける場合はドメイン名のうしろがスラッシュになることに注意してください。

手順4:手元を再度確認

$ git remote -v
origin  git@github.com:username/repository.git (fetch)                                                                                                   
origin  git@github.com:username/repository.git (push)

変わってました。

手順5:pushして完了

git push

お疲れさまでした。

手順6:旧リポジトリのアーカイブ

Bitbucketの場合、リポジトリはアーカイブできないので、アーカイブ専用ワークスペースを作成して譲渡するとすっきりして便利です。

BitbucketからGitHubへの引っ越し方法を書いてみましたが、その逆のGitHubからBitbucketも、もちろん別のgitサービスでも上記手順を読み替えたらできます。