ちょー簡単！！初心者でもわかるGithubの使い方

#はじめに
こんにちは。某学校でプログラミング等の勉強中のサーバーサイドのプログラマーのワタタクです。:relaxed:

今回はwebエンジニアなら使えて当たり前のGitHubの使い方についてまとめてみました。

#対象
- Macの人
- GitHub初心者
#Gitとは
Gitはプログラムなどを記述したソースファイルを管理するための「バージョン管理システム」のことを言います。
#GitHubとは
GitHubはGitのリポジトリを「Web上のGUI操作でグラフィカルに扱うことが可能」なツールです。
#用語の説明
まずはじめに、よくわからない用語の説明からしていきます。

- **インデックス**
これから登録するファイルが，以前とどう変わったかを登録する一時的な場所です

- **リポジトリ**
貯蔵庫．データなどを保存しておく場所です

- **リモートリポジトリ**
GitHub上の，データを保存している場所を指します

- **ローカルリポジトリ**
GitHubに送信するデータを登録しておく，自身のPC上の場所を指します

- **コミット**
GitHubでは，GitHubにデータを送信する前に一時的にローカル環境にデータを登録し，その後一気にGitHub上に送信します．
そのローカル環境にデータを登録することをコミットといいます．

- **プッシュ**
ローカル環境に登録していた（コミットされた）データをGitHubに送信＆公開することを言います．

#GitHubの使い方
GitHubのアカウントの作り方に関しては割愛します。
##1GitHubにデータを送信する。
###リポジトリを作る（リモートリポジトリ）
GitHub上にリポジトリを作ります．
右下の，「＋New Repository」を押してください。
<img width="961" alt="watataku8911__綿野拓也_ワタタク__.png" src="https://qiita-image-store.s3.amazonaws.com/0/116696/12658781-de49-3f8b-47fa-2e8ba235a3f2.png">
次に，項目をうめて，「Create Repository」を押します．
これでリポジトリの作成が完了です．
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f36333333382f39626335636263342d373933622d636561322d373834632d6265616563306161646562372e706e67.png](https://qiita-image-store.s3.amazonaws.com/0/116696/15d343c8-4a08-0467-84d6-fcfc26a06932.png)
この後表示されたページのURIを使いますので，とりあえずそのことを覚えておいてください．
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f36333333382f35306132393033362d356161382d386639382d336463662d6638663333306363383535652e706e67.png](https://qiita-image-store.s3.amazonaws.com/0/116696/84818842-ef90-2f3f-9cf7-8593c3e64386.png)
###ローカル環境にリポジトリを作る（ローカルリポジトリ）
次にローカルリポジトリを作成します。
作る場所はどこでも良いのですが，とりあえずHOMEディレクトリの下にでも作っておきましょうか。

ターミナルで以下のコマンドを叩いていきます

```terminal:terminal
$ mkdir github
$ cd github
$ mkdir gittest
$ cd gittest
$ git init
```
``$ git init``を叩くと，ローカルリポジトリが作成されます。

###ファイルをローカルリポジトリに登録（コミット）してみる
では実際にファイルをローカルリポジトリに登録してみましょう．
適当にテキストファイルを作成します．
私はこれを作成した``ホームディレクトリ/github/gittestフォルダ``に保存しました

```text:test.txt
hello git!
```
次に，データの変更点を追加します．
今回の場合は「新規作成」ということになりますね．
これらはgitのコマンドで全部勝手にやってくれます．

```terminal:terminal
$ git add test.txt
```

上記のコマンドを叩くと，変更点を勝手にインデックスに追加してくれます。
何もエラーが表示されなければ成功です。

インデックスにデータを追加したら，登録（コミット）します。

```terminal:terminal
$ git commit -m "初めてのGitHub！"
```

このコマンドで，インデックスの内容が全てローカルリポジトリに登録されます．
ワオ簡単！

``(注)
この時点では『ローカル』リポジトリなので，GitHub上には反映されておりません。
``
###GitHubにデータを送信する（リモートリポジトリにデータをプッシュする）
では，GitHubにデータを公開してみましょう。
先ほどのURIを使います。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f36333333382f35306132393033362d356161382d386639382d336463662d6638663333306363383535652e706e67.png](https://qiita-image-store.s3.amazonaws.com/0/116696/611aeaf2-d5d0-bda1-89b7-5a3dce346715.png)
まず，インデックス（ファイルの変更点などのリスト？）をGitHubに作成。

```terminal:terminal
$ git remote add origin https://github.com/あなたのUSER_ID/HelloGit.git
```

そしてコミットされたデータをGitHubに送信（プッシュ）します。

```terminal:terminal
$ git push origin master
```

ここまでエラーなく進めるとGitHubにデータが登録されていると思います。
##2.プッシュしたデータを変更・更新してみる。
せっかくGitHubにデータを公開したのですから，変更してみましょうか．
先ほどのtest.txtを編集してからプッシュしてみましょう．

```text:test.txt
hello git!
Edit test!
```
1）変更をインデックスに追加

```terminal:terminal
$ git add test.txt
```
2）ファイルを登録（コミット）

```terminal:terminal
$ git commit -m "変更してみたよ"
```
3）データの送信

```terminal:terminal
$ git push origin master
```
エラーなく進めたら更新出来ていると思います。

##3.ブランチ
###ブランチ（枝）とは？
ブランチを切る……マージする……これまたGitにはよく出てくるワードではないでしょうか？
枝を切って結合する？
ってか，「マージ」ってそもそも動詞だから「マージする」 = 「結合する」じゃねーの？
###用語の説明
- **マージ**
「結合する」という意味。
複数に分岐させた物をつなぎます。

- **ブランチ**
その名の通り「枝」。
一気にバージョンを上げる時などに，失敗した時用にコピーを作っておくイメージ。
###ブランチを作ってみる
まずはブランチを作ってみましょう。

```terminal:terminal
$ git branch testbranch
```

これで「testbranch」という名前のブランチが作成されます．

なお，今ある（存在する）ブランチは，

```terminal:terminal
$ git branch
```

で確認できます．

*＊ブランチを移動したい時は以下のコマンドを叩く*

```terminal:terminal
$ git checkout testbranch
```
さらにそのブランチにデータを送信したい時は以下のコマンド

```terminal:terminal
$ git push origin testbranch
```

###ブランチを本筋に統合する
所謂「マージ」と言うものをしてみます．
ブランチを本筋に反映させます．

masterブランチに，testbranchを取り込みます。

1）まずは取り込み先のブランチを選択します。

```terminal:terminal
$ git checkout master
```
2）そしてmaterにtestbranchを結合します。

```terminal:terminal
$ git merge testbranch
```
3）最後に，結合情報をGitHubに送ります（プッシュ）

```terminal:terminal
$ git push origin master
```
今回は「master」ブランチにデータをプッシュするため，コマンドは「master」になっています

以上。
もし何か間違っている等のご指摘があればご連絡ください。
最後まで読んで頂きありがとうございました。