[Dev101]#3 Github Pagesでホームページ 

# AGENDA
0. はじめに
1. 準備
2. gitコマンド思い出し
3. ホームページ用レポジトリを作る
4. Docker環境からgit push
5. 確認
６. ホームページの更新
7. 宿題


# 0. はじめに
前回は「プログラム開発ってじぇんじぇんイメージ沸かないよぉ～って方向けの第一歩ハンズオン」としてDocker環境で色んな言語でHello World!を表示してみました。
[[Dev102]#1 Hello World!](https://qiita.com/nagahisa/items/3ae2b43a3181b60c89c1)

今回は開発のソースコード管理に良く使われる [GitHub](https://github.com)を触ってみます。
せっかくなので、単純なプログラムのソースコード管理ではなく、[Github Pages](https://guides.github.com/features/pages/)という機能を使って自分のホームページを作ってみましょう！

参考：https://pages.github.com/


なおgit/githubの説明は割愛しますので、各自以下などで確認お願いします。
[今日からはじめるGitHub](https://employment.en-japan.com/engineerhub/entry/2017/01/31/110000)

# 1. 準備

## (1) Githubアカウント

まだGithubアカウントを持っていない方は、以下などを参考にGithubアカウントを作成して下さい。
[Githubのアカウント作成方法](https://qiita.com/rshibasa/items/f62db870ed573ca4dced)
[英語が苦手なフレンズに贈るGitHub事始め（GitHub公式チュートリアル翻訳）](https://qiita.com/sugaryo/items/34a607a96efb7d32dad3)

まぁ、これらの記事見なくても以下から直感的に登録可能です:smile:
https://github.com
![old-001.PNG](https://qiita-image-store.s3.amazonaws.com/0/79389/fb8d3a52-5bce-b69c-ba08-a9c987f9216d.png)


## (2) Play with Dockerでインスタンス起動

以下前々回記事を参考にPlay with Dockerでインスタンスを起動してください。
[[Dev101]#1 Play with Docker](https://qiita.com/nagahisa/items/d3e75c79ec5f19eba155)

[起動はこちらから](https://labs.play-with-docker.com)

# 2. gitコマンド思い出し
前回記事で行った "git clone"コマンドを思い出してみましょう。

[[Dev101]#2 Hello World!](https://qiita.com/nagahisa/items/3ae2b43a3181b60c89c1)


```shell:コマンド入力
pwd
ls
git clone http://github.com/Nagahisa/Dev101-02-HelloWorld.git
ls
```

![001PNG.PNG](https://qiita-image-store.s3.amazonaws.com/0/79389/cc1fb261-debd-3d37-c4f6-09a5ddf768ff.png)

```shell:コマンド入力
tree .
```
![002PNG.PNG](https://qiita-image-store.s3.amazonaws.com/0/79389/b9e05219-75c0-ce65-298d-e6accec6958b.png)

はい、前回はNagahisaさんが作った公開レポジトリ http://github.com/Nagahisa/Dev101-02-HelloWorld をコピー(git clone)して使いましたね。

#3. ホームページ用レポジトリを作る

今回は https://nagahisa.github.io のような個人ホームページを作りたいので、各自[yourname].github.ioというレポジトリを作ります([yourname]は自分のGithubアカウントに読み替えてください）。

別名レポジトリのWeb公開もほぼ同様手順で可能なのでその際は以下参照してください。
[10分でできる！GitHub Pagesで静的サイトを公開する方法](https://tadaken3.hatenablog.jp/entry/github-pages)
※今回のホームページに使用するindex.htmlはこのサイトにあるサンプルを流用させていただきました！

## (1)New Repository作成
自分のGitHubページ　https://github.com/[yourname] にアクセスしログイン右上の＋ボタンから"New repository"押します。

![010.PNG](https://qiita-image-store.s3.amazonaws.com/0/79389/6b4edbbb-242d-6681-e5d6-c9039b08a64f.png)

・以下情報で作成します。
- Repository name: [yourname].github.io
- Description: [yourname]'s Home Page

![011.PNG](https://qiita-image-store.s3.amazonaws.com/0/79389/f5f6a9d3-c7e4-ba64-9c7f-586b6a850871.png)

## (2)作成後画面

Repositoryセットアップの方法が表示されます。
今回は２番目の「create a new repository on the command line」でトライしましょう。
![012.PNG](https://qiita-image-store.s3.amazonaws.com/0/79389/38b2a764-9b24-0f39-f86f-98af36bcac7f.png)

通常のRepositoryは "README.md"というマークアップファイルを置いておくと Webでのレポジトリアクセス時にその内容を表示してくれます。
今回はHomePageに使うので  "README.md"を "index.html"とします。

#４. Docker環境からgit push

上記GithubのWeb UI操作でRepositoryの枠ができたので、次はそのRepositoryで管理するデータを格納します。
Docker環境でローカルレポジトリーを作成して、その内容をPUSHします。


## (1)git初期設定
git push使う前に初期設定が必要です。
自分のメアドとGitHubアカウント名を設定してください。
確認は "git config --list"で出来ます。


```shell:コマンド入力
git config --global user.email "[yourname]@example.com"
git config --global user.name "[yourname]"
```
![002.PNG](https://qiita-image-store.s3.amazonaws.com/0/79389/88edc2b2-a5f6-991a-6e44-85ca71303be9.png)


## (2)作業環境へ移動
作業環境をレポジトリ名で作ってそこに移動します（空の当該レポジトリをgit cloneしてもOKです）。

```shell:コマンド入力
mkdir [yourname].github.io
cd [yourname].github.io
```
![020(2).PNG](https://qiita-image-store.s3.amazonaws.com/0/79389/90f922be-0b81-1616-5e4e-dfd21b171ebf.png)

## (3)index.htmlを作成します。

簡単なindex.htmlを作成します（htmlファイルじゃないですが)。

```shell:コマンド入力
echo "# [yourname].github.io" >> index.html
```
![021.PNG](https://qiita-image-store.s3.amazonaws.com/0/79389/ed654f86-84d3-ff58-8832-e1e11d8b3aa1.png)

## (4)git init

ローカルのレポジトリをgit initコマンドで初期化します（.gitディレクトリが出来ます）。

```shell:コマンド入力
git init
```
![023.PNG](https://qiita-image-store.s3.amazonaws.com/0/79389/43e20944-1833-e155-0352-bbe11ecae583.png)


## (5)git add, git commit, git push

レポジトリに index.htmlファイルを追加し、commitします。

```shell:コマンド入力
git add index.html
git commit -m "first commit"
```
![024.PNG](https://qiita-image-store.s3.amazonaws.com/0/79389/b61eddaf-5893-0682-ecbe-2d27c23c995d.png)

Remoteをgithubに設定しPushします。

```shell:コマンド入力
git remote add origin https://github.com/[yourname]/[yourname].github.io.git
git push -u origin master
```
![025.PNG](https://qiita-image-store.s3.amazonaws.com/0/79389/c277ff9c-96c8-59a0-17e7-bb20805f744b.png)

#5. 確認

##(1)ホームページ用レポジトリの確認
https://github.com/[yourname]

枠だけ作ったGitHubレポジトリを確認してみます。
git commit -m で指定したコミットメッセージ"first commit"が確認できます。

![026.PNG](https://qiita-image-store.s3.amazonaws.com/0/79389/3ea311bf-a516-684b-db19-55f558f11158.png)

##(２)ホームページの確認

以下のURLで作ったホームページを確認しましょう。
https://[yourname].github.io


![027.PNG](https://qiita-image-store.s3.amazonaws.com/0/79389/ce2cae89-b4aa-dbb0-4bfc-65c249889a34.png)

#6. ホームページの更新

##(1)Docker環境でindex.html更新

Docker環境でindex.htmlファイルを更新します。
今回はPlay with DockerのEDITORを使って、index.htmlを以下で上書きします。
以下はNagahisaさん用サンプルですので、各自自分の情報にカスタマイズして利用してください。

```html
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>NagahisaのHome Page</title>
    <!--今回はサンプルのためMarxというシンプルでそれでいて小奇麗なCSSを使っています-->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/marx/2.0.4/marx.css">
  </head>

  <body>
    <main>
      <h1>リンクです</h1>
      
      <a href="https://qiita.com/Nagahisa/" target="_blank"><button>Qiitaに行く</button></a>
      <a href="https://www.facebook.com/kenzo.nagahisa" target="_blank"><button>Facebookに行く</button></a>
      
   </main>
   <script>
     <!--JavaSciptの動作確認のため、console.logに出力しています-->
     console.log('JavaScriptも動きます');
   </script>
  </body>
</html>
```

Play with Dockerの"EDITOR"で index.htmlファイルを開く
![030.PNG](https://qiita-image-store.s3.amazonaws.com/0/79389/6f78aca7-3385-4530-0c05-7ebf81531ca3.png)

上記で上書き
![031.PNG](https://qiita-image-store.s3.amazonaws.com/0/79389/8046db56-4722-932a-8eb3-b79384ecebe8.png)

確認
![032.PNG](https://qiita-image-store.s3.amazonaws.com/0/79389/3472634b-f253-6ad3-bc8c-4dcc050638d3.png)

## (２)git add, git commit, git push

前章と同様に index.htmlを addして、commitして、pushします。

```shell:コマンド入力
git add index.html
git commit -m "second commit"
git push -u origin master
```
![033.PNG](https://qiita-image-store.s3.amazonaws.com/0/79389/dc808ac6-d565-9888-bc5f-80461671d883.png)

##(３)ホームページ用レポジトリの確認

https://[yourname].github.io
git commit -m で指定したコミットメッセージ"second commit"が確認できます。

![034.PNG](https://qiita-image-store.s3.amazonaws.com/0/79389/df4247fa-db0c-0ccf-9b4c-6d3105ff060b.png)

"second commit"のURLリンクをクリックします。
![035.PNG](https://qiita-image-store.s3.amazonaws.com/0/79389/f86c8d1f-0074-be77-7da1-fdaa9c5ed7ca.png)

最初の１行が削除され(ピンク編みかけ)、新しいindex.htmlが追加（緑編みかけ）されているのがわかります。

##(４)ホームページの確認

以下のURLで更新したホームページを確認しましょう。
https://[yourname].github.io

![036.PNG](https://qiita-image-store.s3.amazonaws.com/0/79389/06fb882f-3623-e457-9f3e-e6fee06c333c.png)

# 7. おまけ

## (1)宿題
・index.htmlをDocker環境で更新して git pushでホームページ更新してみましょう。
・GithubからもWeb-UIで更新できます。試してみましょう。
・Blogも開設出来ます。Blog好きの方は是非やってみて下さい！
[Hugo + GitHub Pages でブログのプロトタイプを構築してみた](https://qiita.com/h6m3_u/items/5893a61091d258936716)

## (2)参考
GitHubはソースコード管理だけではなく、こんな用途にも使われています。
[デンキヤギ株式会社 就業規則](https://github.com/DenkiYagi/EmployeeHandbook)

今年に入って無料ユーザでもPrivate Repositoryが無制限に作れるようになっていますので、個人のテキストファイル管理などにもチャレンジしてみてください！！
[GitHub、無料ユーザーもプライベートリポジトリを使い放題に](https://www.itmedia.co.jp/news/articles/1901/08/news051.html)



Enjoy:bouquet: