サイトアイコン teckback

CodeCommit → GitHub に移行する方法

バージョン管理をCodeCommit→GitHubに移行する方法です。

はじめに

バージョン管理をCodeCommit→GitHubに移行する方法を説明します。

以下の前提で話を進めます。

もともと、CodeCommit使ってみてたんですが、まだまだ細かいところで手が届かないというか。。。(Pull Requestなど)
もちろん、AWS内で完結できるのも、かなりメリットなので、今後のアップデートに期待ですね。

ちなみに、CodeCommitでバージョン管理する方法は以前の記事を参考にしてください。

GitHub にリポジトリを作成する

GitHub側にリモートリポジトリを作成します。

右上の「」メニューの New repository をクリック

Repository name に名前を入れ(何でも良し)、Priveteに設定して、Create repository をクリック。

リモートリポジトリ作成完了です。

Cloud9とGitHubをSSH接続する

公開鍵を作成

Cloud9のターミナルで以下コマンドを実行

$ ssh-keygen -t rsa

実行するとパスワードを設定するか聞かれますが、すべて空でEnterします。

Enter file in which to save the key (/home/ec2-user/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again:

※passphraseを設定するとpushやpullの都度パスワードを聞かれるので、空で設定しています。

.sshフォルダ配下に「id_rsa(秘密鍵)」「id_rsa.pub(公開鍵)」の2つが作成されます。筆者のAWS環境だと.sshフォルダの位置は以下でした

/home/ec2-user//.ssh

id_rsa.pubをGitHubへ登録

id_rsa.pub(公開鍵)の中身をコピーします。方法はなんでも良いですが、筆者はVimを使いました。

.sshフォルダで以下コマンドを打って表示された中身をコピーすればOK。

 $ vim id_rsa.pub

コピーが終わってエディタ画面を抜けるときは「:q」と打ってエンター。

GitHub側で公開鍵を登録

GitHubにログインし、右上のユーザーアイコン→Settingsをクリック

SSH and GPG keysNew SSH key をクリック
※SSH and GPG keys クリック後はGitHubパスワードを聞かれるので入力します。

Key に コピーした内容を貼り付け、Titleを設定して(何でも良し)、Add SSH key をクリック。GitHub側の設定はこれでOK。

Cloud9のリモートリポジトリ変更

リモートリポジトリをCodeCommit → GitHub に変更します。

GitHubを開き、リポジトリを開いて CodeSSH → 表示された接続先をコピーします

Cloud9で接続先を変更します。以下コマンドをうち、new url の部分に先ほどコピーした接続先を貼り付け。

$ git remote set-url origin [new url]

以下コマンドで接続先を確認、新しい接続先になっていたら成功です。

$ git remote -v

origin git@github.com:新しい接続先 (fetch) 
origin git@github.com:新しい接続先 (push)

以下コマンドでSSH接続します。

$ ssh -T git@github.com

以下メッセージが表示されればOK。

Hi [user name]! You've successfully authenticated, but GitHub does not provide shell access.

Pushして、GitHub側に反映していれば成功です。

$ git push -u origin master

リモートリポジトリを共有している場合

共同開発していた場合、他の開発者もリモートリポジトリを変更する必要があります。

GitHubのリモートリポジトリを共有

共有するリポジトリを開き、

Settings → Manage access → invite a collaborator をクリック。
※Manage access クリック後はGitHubパスワードを聞かれるので入力します。

共有するアカウントを入力して、Select a collaborator above をクリック。これで招待完了です。

共同開発者側でCloud9とGitHubをSSH接続する

共同開発者側でもSSH接続設定が必要です。方法は上記「Cloud9とGitHubをSSH接続する」と同じですが、「Cloud9のリモートリポジトリ変更」は不要です。

GitHub側からCloneする

Cloud9でリポジトリ用フォルダに移動し、以下コマンドでCloneします。共有リモートリポジトリの部分はGitHubの接続先です。

$ git clone git@github.com:共有リモートリポジトリ

以下メッセージが表示されたら yes と入力してEnter。

Are you sure you want to connecting (yes/no)?

これでCloneされて作業完了です。

同時に接続先もGitHub側で設定されます。

モバイルバージョンを終了