Skip to the content.

Bitbucket から Github に移行する方法

Github がプライベートリポジトリを無料開放したので Bitbucket から Github に移行しようと考える人も多いでしょう。 私はもともと目的によって使い分けていたものの、一部を Bitbucketから Github に移行しました。 やり方はそれほど難しくないものの、一部間違えるとうまく行かない点があるのでまとめてみました。

ローカルのリポジトリを移行準備する

まずはローカルのリポジトリを移行できるように準備します。

$ git pull
$ git fetch --unshallow
$ git remote rename origin old

最初にリポジトリを pull して最新状態にします。 次に unshallow します。 最初からすべてのコミット履歴がローカルにあるなら不要ですが、途中から shallow clone したリポジトリだとこの作業がないと移行に失敗します。 最後に remote をリネームします。

Github 上に空のリポジトリを作成する

Web インターフェイス上で Github に新しいリポジトリを作成します。 このとき、必ず空のリポジトリでないとあとで失敗します。 作成画面で出てくる選択肢で Readme を作ったり、 .gitignore や ライセンスを選択しても失敗します。 ここまで正しい手順で空のリポジトリを作成できていれば、画面上に移行手順が表示されるので、それに沿って作業します。

ローカルのリポジトリを移行する

Github の画面上のガイドに沿って作業します。

$ git remote add git@github.com:[username]/[repo-name].git
$ git push -u origin

[username][repo-name] は画面に表示されたものをそのまま使用します。 コピーして端末に貼り付けるとミスタイプしないので便利です。

お片付け

以上でリポジトリの移行は終わりですが、正しく移行できたことを確認したら古いリポジトリの削除をします。 Bitbucket 上のリポジトリは削除しても、移行済みの目印をつけて残しておいても構いません。 ローカルでは古いリポジトリの remote を削除します。

$ git remote rm old

Github の画面上に出てくるやり方と同じものは多く見かけましたが、最初に pull しておかないといけないとか、 unshallow しないと失敗するとかの情報は意外とないようです。