ローカルで制作したものをgithubに公開するまで

Gitの勉強を兼ねて、Githubに公開しGithub pagesを作るまで。

# Github
https://github.com/

GithubにはhhtpとSSHで接続する方法がありますが、
今回はSSHで接続しようと思います。

# SSHでの接続設定
まず、公開鍵と秘密鍵を作る。
パスフレーズは忘れないように。

```
$ ssh-keygen -t rsa -C "[e-mail]"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/user/.ssh/id_rsa): [左に出ているパスで良ければEnter]
Enter passphrase (empty for no passphrase):[パスフレーズ入力]
Enter same passphrase again:[もう一度]
```

以下のメッセージが出れば成功。

```
Your identification has been saved in /c/Users/user/.ssh/id_rsa.
Your public key has been saved in /c/Users/user/.ssh/id_rsa.pub.
The key fingerprint is:
51:5c:d8:ec:94:17:b5:d6:64:60:ba:28:21:62:10:79 [e-mail]
```

もし、以下のエラーが出たら

```
open /c/Users/user/.ssh/id_rsa failed: No such file or directory.
Saving the key failed: /c/.ssh/id_rsa.
```

.sshのフォルダを作れば良い。
フォルダを作りたいところに`cd`で移動してから。

```
$ mkdir .ssh
```

鍵が生成できたら、
sshのkeyにさっき作った鍵を追加する。

```
$ eval "(ssh-agent -s)"
Agent pid xxxxx
$ ssh-add ~/.ssh/id_rsa
Enter passphrase for /c/Users/user/.ssh/id_rsa:[生成時に入力したパスフレーズ]
Identity added: /c/Users/user/.ssh/id_rsa (/c/Users/user/.ssh/id_rsa)
```

これで秘密鍵と公開鍵が生成できたので、Githubへ。

…の前に、これでクリップボードにコピーしておく。（あとで貼り付けるので）
※別にファイル開いてCtrl + A, Ctrl + C, Ctrl + VでもOKです。好みです。

```
$ clip < ~/.ssh/id_rsa.pub
```

Macでクリップボードにコピーする場合。

```
$ cat  ~/.ssh/id_rsa.pub|pbcopy
```

SettingsのSSH Keysのページ。

![github003.png](https://qiita-image-store.s3.amazonaws.com/0/47351/42bbe480-4f7e-fec3-4ca3-acc1d8a8612c.png)

Titleは何でも良いです。
Keyに先ほどクリップボードにコピーしたものをペースト。

Add Key押すと、パスワード聞かれるのでパスワード入力。（聞かれないこともあります）
ちなみに、Githubのパスワードなので注意。
秘密鍵と公開鍵を作るときに入れたパスフレーズとは別物です。

![github004.png](https://qiita-image-store.s3.amazonaws.com/0/47351/485bd47c-d262-8cdf-abcf-dead015ab978.png)

ここまで来たらあと一息。
githubに接続できるか確認！
ユーザー名が表示され、Settingsのページでも、緑色に光れば接続成功！！

```
$ ssh -T git@github.com
Hi UserName! You've successfully authenticated, but Github does not provide shell access.
```
![github005.png](https://qiita-image-store.s3.amazonaws.com/0/47351/76856d80-00ed-e0be-e3e1-b81ab67b081b.png)

# Githubにリポジトリを作る

右上の + の New repository から。

![github006.png](https://qiita-image-store.s3.amazonaws.com/0/47351/d0dcc1a9-d158-7c41-0a17-537c0c71741c.png)

Initialize this repository with a READMEはチェックなしでも。
入れるとREADMEが作られます。

Create repositoryをすると、親切にこのコマンドたたけというのが出ます。

![github007.png](https://qiita-image-store.s3.amazonaws.com/0/47351/ac327d91-f92d-5b2f-22e5-5682e64369f1.png)

# コマンドでGithubにpush
ローカルで作ったコードをpushするので、`cd`でコードのある場所に移動しておきます。

まずpushをする前にすること。
- リポジトリ初期化
- コミットしたいファイルをインデックスに登録
- コミット

```
$ git init
$ git add .
$ git commit -m 'initial commit'
```

リモートリポジトリを指定する。

```
$ git remote add origin git@github.com:UserName/sapmle.git
```

リモートリポジトリで名前の一覧が見れる。
-vをつけると詳細が見れる。

```
$ git remote
orijin
$ git remote -v
origin git@github.com:UserName/sample.git (fetch)
origin git@github.com:UserName/sample.git (push)
```

ここまで来たら、あとはpushするだけ。
-uをつけると次からリポジトリを省略してpush, fetch, pullができるらしい。

```
$ git push -u origin master
```

これで、無事Githubにpushされました。


# Github pagesの作成
公開したコードをそのまま公開したい時とかってありますよね。

```
$ git push origin master:gh-pages
```

これをするだけで、gh-pagesというブランチがリモート側に作られます。

![github008.png](https://qiita-image-store.s3.amazonaws.com/0/47351/ef918de2-64ec-5cb8-bdca-4663d3fadc7f.png)

> http://[username].github.io/[ProjectName]/

10数分経てば、上のURLで見れるようになります。
usernameが大文字の人は、全部小文字になります。