どうも、フリーランスのITエンジニア兼ブロガー兼投資家のKerubitoです。
先日、あるGitHubのアカウントのリポジトリを別のアカウントのリポジトリに引越し(移行)する必要が出てきました。
なんだか面倒くさそうだな〜と思いつつ、やってみることに。
やりたいことは以下。
・Aアカウントのリモートリポジトリ(private)を基にBアカウントのリモートリポジトリ(private)を新規作成したい。
・更新履歴(history)もそのまま持っていきたい。
ネットでググってみましたが、なんか自分のやりたいこととは違う・・・。
探し方が悪いのかもしれませんが、これっていうのが出てこない。
で、こういう場合って案外簡単にできるかもしれないと思って、GitHubへ飛んで新規リポジトリの作成をしてみると
「import a repository」っていうのがあるじゃないか。
今まで意識していなかったためか、気づかなかった。
難しく考えすぎるのも良くないですね。
historyまで持ってきてくれるかわからないけど、ひとまずインポートしてみることに。
import a repositoryをクリックすると以下のような画面に遷移します。
「Your old repository's clone URL」に移行前のリポジトリのURLを入力します。
OwnerとNameは新規でリポジトリを作成する際と同じ。
PublicかPrivateかを選んで、「Begin import」をクリック。
すると、以下のような画面に遷移し、インポートがはじまります。
途中、古いリポジトリのログインを求められます。
ログインに成功するとインポートが継続されますが、進んでるのか止まってるのかよくわからん・・・。
プログレスバーが真ん中にあるんだけど、まったく進捗が表示されないので。
ちょっと心配になりはじめた数分後、いきなり進捗が100%!
そして「importing complete!」の表示。
さっそくイカ(GitKraken)でCloneしてみることに。
すると、いきなりのエラー・・・。
「Could not connect to 'origin' Double-check your remote url, then make sure you have access to do that action on that remote and try again.」
簡単にいうと「アクセス権ないし、繋げへんわ」みたいな。
はじめは「は?」となり、5分ほど悩みました。
原因はしょうもなすぎるのですが、単純にイカ(GitKraken)に新しいリポジトリのGitHubアカウントを連携していないという顛末。
だったら新しいリポジトリのGitHubのアカウントをイカ(GitKraken)に連携しましょ。
と、やろうとしたらここで新たな壁が・・・。
無料ライセンスだと、複数のGitHubアカウントをイカ(GitKraken)に連携できないみたい。
ひとまず仕方ないので、別の開発には使ってないMacbookProを引っ張り出してきて、イカ(GitKraken)入れて、Cloneしてみました。
期待どおり、更新履歴(history)も移行できたのでめでたしめでたし。