Github から Bitbucket へのリポジトリの移行方法
Github のプライベートリポジトリでソース管理していたものの、
お金がないから無料でプライベートリポジトリを使える Bitbucket に移行した際のメモ。
移行対象
- ソース
- Wiki
- Issue
手順
ソース移行
$ git clone git@github.com:hoge/HogeHoge.git
- 全ブランチをチェックアウト(多分もっとかっこいい方法があるはず)
$ for branch in `git branch -r | grep -v HEAD | awk -F'/' '{print $2}'`; do git checkout $branch; git pull; done
$ git remote add bit git@bitbucket.org:hoge/HogeHoge.git
- Bitbucket へ全部プッシュ
$ git push -u bit --all
Wiki 移行
Github と Bitbucket 双方ともに、wiki を git リポジトリとして管理している。 URLはそれぞれ下記。
- Github
- https://github.com/[user]/[repo].wiki.git
- Bitbucket
- https://bitbucket.org/[user]/[repo].git/wiki
つまり、これらをソース移行の手順と同様に移してあげればOK。
Issue 移行
こちらは少し面倒くさい。それぞれ異なる形式で保存している模様です。
ですが、素敵な御仁が migrate ツールを作ってくださっていました。ありがとうございますm(._.)m
上記を使用すると、zip 形式で issue が出力されます。手順は Readme の通りで簡単で嬉しいです。
$ bundle install --path vendor/bundle $ bundle exec ruby cli.rb githubuser/repo username password exportfilename.zip
出力されたら、リポジトリの画面から Settings
> インポート & エクスポート
に遷移し、ファイルを選択すればOKです。
以上です。
Issue とかは完璧ではない(リンクとか切れるかも)ですが、捨てるのもあれですし割りとサクッと移行できるのは嬉しいですね。