GitHubのプライベートリポジトリが先日無料化されましたね。今までケチってプライベートリポジトリはAWSのCodeCommitを利用していたんですけど、やっぱりGitHubの方が機能的にも何かと便利だしパブリックのと共通化したい…という事でCodeCommitからGitHubに再移行しました。
CodeCommit以外のホスティングサービス(GitLabとか)でも応用出来るので、今こそGitHubへの移行を考えている人は全般的に使えるテクだと思います。
移行用のベアリポジトリを作成する
まずは以下のコマンドで、移行のためのベアリポジトリを作成します。
git clone --mirror ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/example bare-example
–mirrorオプションをつければベアリポジトリとしてcloneできます。
ベアリポジトリは実際の作業用リポジトリとしては使えないんですけど、全てのブランチを一気にcloneできます。
ベアリポジトリの中に入る
いったんベアリポジトリの中に入ります。
cd bare-example
GitHubのリポジトリ名を指定してpush
ベアリポジトリの中からGitHubへpushします。
git push --all git@github.com:onsentamago/example-repo.git
ここでのコツは–allオプションをつける事です。これによりmaster、developブランチなど全てのブランチをpushする事ができます。
以上、無料化されたGitHubへの移行方法でした。