Skip to content

Instantly share code, notes, and snippets.

@officeokano
Last active December 25, 2023 09:11
Show Gist options
  • Save officeokano/302115749c00ff7659d17cc02f5af09f to your computer and use it in GitHub Desktop.
Save officeokano/302115749c00ff7659d17cc02f5af09f to your computer and use it in GitHub Desktop.
Bitbucket から Github に移行する方法

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 しないと失敗するとかの情報は意外とないようです。

@novogrammer
Copy link

勉強になりました。

タイプミスを見つけたのでおしらせします。
git fetch --umshallow
のところを
git fetch --unshallow
と変えて実行しました。

@officeokano
Copy link
Author

ありがとうございます。
修正しておきました。

@luida-okamoto
Copy link

大変参考になり、助かりました!

こちらですが、

git remote add git@github.com:[username]/[repo-name].git

こちらが正しいかと思いました。

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

それと、ブランチなども考慮するともう少し複雑になりそうでした。
こちらの記事が参考になりました。
https://qiita.com/1000k/items/2a5dcda5fd41f38fd5d5

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment