前にGit Repository on Cloud Storage Servicesという投稿をしたのですが、今回はDropboxなどに作成したBareリポジトリをGitHubやBitbucketのようなGit Hosting Serviceに移行する方法を書きたいと思います。
その前に、Gitリポジトリの管理方法によって、使い方や公開度が変わってくるので、個人的にどう使い分けているかを書きます。
- [公開度 public] GitHub, 誰に見られてもよいコードをアップしています。
- [公開度 internal] Bitbucket, そのうち公開予定であったり、研究で書いているプログラムをアップしてます。
- [公開度 private] DropboxやGoogle Drive, 誰にも見せる予定のないプログラムや書きかけの記事などを保存しています。
「Bitbucketならprivateリポジトリを作れるし、別に全部 Bitbucketでよくない?」という考えもあると思いますが、僕の意見としては、Bitbucketもそのうち制限をかけるかもしれませんし、Dropboxならチームでの共有も無料で行えるなどの利点があると考えているため、複数の公開度で使い分けています。
前置きが長くなりましたが、ローカルやDropbox上(これもローカルですが...)に作ったBareリポジトリをGit Hosting Serviceにアップするには、以下のステップを行います。
-
ローカルにあるBareリポジトリからまずデスクトップなどにプロジェクトをcloneし、non-Bareリポジトリを作成する
(注:すでに存在しているnon-Bareリポジトリを使う場合は、pullなどして必ず最新の状態にしておいてください) -
GitHubあるいはBitbucketに新しいリポジトリを作成する(名前は自由ですが、Bareリポジトリの名前が良)
-
GitHubやBitbucketのプロフィールにあるSSH Keys画面から、ssh public keyを登録する。登録方法は検索すれば色々ありますが、Putty Genなどで作成した公開鍵をコピペするのが簡単です。すでに登録している人はこの作業は要りません
-
non-BareリポジトリのoriginのURLが、Bareリポジトリへのパス(Dropboxにアップしているなら、C:/User/Go_zen_chu/Dropbox/Git/Projectなど)になっているので、これをGitHubやBitbucketに新規作成したリポジトリへのURLに変えます。
GitHubならURLは、git@github.com:UserName/Project.git
BitbucketならURLは、git@bitbucket.org:UserName/Project.git
例:git@github.com:Go-zen-chu/HogeProject.git (HogeProjectが2.で新規作成したリポジトリ)
- originのパスを上のように変更したら、non-Bareリポジトリをpushします。すると、今までの更新履歴を保ったまま、GitHubやBitbucketにアップロードできます。
これで、次からはGitHubやBitbucketからpullやcloneができるようになります。失敗したときのことを考えて、予めバックアップなどは取っておきましょう。