カタカタブログ

SIerで働くITエンジニアがカタカタした記録を残す技術ブログ。Java, Oracle Database, Linuxが中心です。たまに数学やデータ分析なども。

ローカルリポジトリをgithubにPushしたときのメモ

ローカルのgitリポジトリで作っていたRuby on Rails 4のアプリを、バックアップの意味も含めてgithubにアップしたくなったので、そのときの作業をメモ。アプリ自体はすでに作っており、ローカルのgitリポジトリにコミットされている状態から作業する。もちろんgithubアカウントもあらかじめ準備しておく。

githubにリポジトリ作成

githubにログインし、新規リポジトリを作成しておく。

sshキーを作成する

$ cd ~/.ssh/
$ ssh-keygen -t rsa -C “<your email address>"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/dev/.ssh/id_rsa):
/home/dev/.ssh/id_rsa already exists.
Overwrite (y/n)?y 
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/dev/.ssh/id_rsa.
Your public key has been saved in /home/dev/.ssh/id_rsa.pub.
The key fingerprint is:
XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX <your email address>
The key's randomart image is:
・・・

sshキーをssh-agentに登録する

$ eval "$(ssh-agent -s)"
Agent pid 22466
$ ssh-add ~/.ssh/id_rsa
Identity added: /home/dev/.ssh/id_rsa (/home/dev/.ssh/id_rsa)

ssh公開鍵の内容をコピー(作成したid_rsa.pubの中身のテキストをクリップボードにコピーしておく)

$ cat ~/.ssh/id_rsa.pub
ssh-rsa XXXAAB3NzaC1yc2EAAAASIwAAAQEAuTk/tF0OK1wgZ8/B4cqnBPApnOHRlovlkJ1rJycCWYCZy/Y2P2KRtcrN5W3+NpoHFfrTMr7mXZNFtQRlt66lJJ71K3tmY/qVvX00y3/NtazwUuaKXS7uw6lhY35aej1Q/6gdWaBaCFe4yMrX+Qg6GvbrfGl5RLKIpyypH2XXCvQ1Kmf1yAIMQSxU+yn6ljLxyP1f+byVxG9MDD+lFTA+4gbznkd5e5t7RGP5S9MlIkxx/2RqiJHZSMNVJ1mawkjvbPP55NOa7g3yIhGoSk5unkhOmOFWyrbbPqnPXxXXEZcCbSzhqOddozZjS3oBJmClBWBFf/GiyGF5cnhjt6Mw== <your email address>

githubの設定からSSH Keysを登録する

新しいSSH Keyを追加する。Titleには適当な名前をつけ、Keyには上でコピーした公開鍵の内容をペーストする。「Add Key」で登録する。

f:id:osn_th:20141221005936p:plain

githubにsshアクセスできることを確認する

$ ssh -T git@github.com
The authenticity of host 'github.com (192.30.252.131)' can't be established.
RSA key fingerprint isXX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.252.131' (RSA) to the list of known hosts.
Hi <your name>! You've successfully authenticated, but GitHub does not provide shell access.

githubにローカルリポジトリのソースコードをpushする

$ git remote add origin https://github.com/<your account>/<your repository>.git
$ git push -u origin master
error: The requested URL returned error: 403 Forbidden while accessing https://github.com/<your account>/<your repository>.git/info/refs

fatal: HTTP request failed

あれ?ここでエラーとなってしまった!

.git/configを修正する

上のエラーはどうやらデフォルトの.git/configがhttpsでアクセスしている設定になっているので、sshでアクセスするよう直せばいいよう。

$ vi .git/config

こうなっているのを

https://github.com/<your account>/<your repository>.git

これに直す。

ssh://git@github.com/<your account>/<your repository>.git

git pushを再実行する

$ git push -u origin master
Warning: Permanently added the RSA host key for IP address '192.30.252.129' to the list of known hosts.
Counting objects: 300, done.
Compressing objects: 100% (275/275), done.
Writing objects: 100% (300/300), 732.89 KiB, done.
Total 300 (delta 110), reused 0 (delta 0)
Tossh://git@github.com/<your account>/<your repository>.git
* [new branch]      master -> master
Branch master set up to track remote branch master from origin.

今度は成功した!

githubリポジトリにソースコードがPushされていることを確認する

f:id:osn_th:20141221005941p:plain
正しくgithubの画面上で、リポジトリにコードが格納されていることが確認できた!

以上