Git初心者(自分)によるWSLでのGit導入からGitHubの使用まで

#はじめに
自分用に適当に書くので参考にならなかったらすみません :clap:

#前提
- 実行環境は`WSL`
- GitHubのアカウントは作成済み
- 投稿主(初心者)の備忘録

#目次(やること)
1. GitをWSLにインストール[>>](#1-gitをwslにインストール)
2. 初期設定する[>>](#2-初期設定する)
3. リモートの作成[>>](#3-リモートの作成)
4. Gitにpush[>>](#4-gitにpush)
5. Gitからpull[>>](#5-gitからpull)
6. 変更のあったファイルを確認[>>](#6-変更のあったファイルを確認)
7. 変更のあったファイルの内容を確認[>>](#7-変更のあったファイルの内容を確認)
8. addされているファイルを確認[>>](#8-addされているファイルを確認)
9. 変更履歴を確認[>>](#9-変更履歴を確認)

#手順
$は入力しなくていいです。
##1. GitをWSLにインストール
wsl上で以下のコマンドを実行

```bash:bash
$ sudo apt install git
```
しっかりインストールされていれば、

```bash:bash
$ git --version
git version 2.17.1
```
となるはず。(バージョンはそれぞれ)
##2. 初期設定する
ユーザ名とメールアドレスを登録

```bash:bash
$ git config --global user.name "任意のユーザ名"
$ git config --global user.email "任意のメールアドレス"
```
うまく設定できていれば、

```bash:bash
$ git config user.name
<設定したユーザ名>
$ git config user.email
<設定したメールアドレス>
```
となるはず。
##3. リモートの作成
####1. [GitHub](https://github.com/)にログイン
####2. リポジトリを作成
右上の`+`ボタンから`New repository`を選択 
![New_repository][p1]
リポジトリ名を決めて作成
![create_repository][p2]
####3. 完成
![complete][p3]
##4. Gitにpush
まずは、Gitを用いるディレクトリを作成(`mkdir`)
すでにあるならそこに移動(`cd`)
今回のディレクトリは`git_test`(この中に入る)
中身は空のテキストファイル`empty.txt`

```bash:git_test
$ ls
empty.txt
```
####1. Gitで管理を始める
```bash:git_test
$ git init
```
####2. push先のリモートを指定
![SSH][p4]
先ほど作成したリポジトリのSSH(自分のもの)をコピーして以下を実行

```bash:git_test
$ git remote add origin <コピーした指定先のSSH>
```
####3. pushする
`add`して`commit`して`push`する。
commit時のメッセージは適切に書く。

```bash:git_test
$ git add empty.txt 
$ git commit -m 'empty.txtを作成しました。'
～色々出ます～
$ git push origin master
～色々出ます～
```
もし、カレントディレクトリ内のすべてを`add`したいときは、
ワイルドカードを用いて、`git add *`とするか
カレントディレクトリを表す`.`を用いて
`git add .`としてください。

####4. GitHubを確認
うまくいていれば先ほどのリポジトリに追加されている。
![success][p5]
##5. Gitからpull
仮に友達のF君が`git_test2`というディレクトリに、
先ほど私が`push`したものを`pull`することを考える。

```bash:git_test2
$ git init
～色々出ます～
$ git remote add origin https://github.com/yosse95ai/git_test.git
$ git pull origin master
～色々出ます～
$ ls
empty.txt
```
うまくいったので`empty.txt`が追加された。
##6. 変更のあったファイルを確認
私は空のテキストファイル`empty.txt`の内容を変更し、
空の`index.html`ファイルを作成しました。

```text:empty.txt
こんにちはQiita
```
変更されたファイルが何か確認します。

```bash:git_test
$ ls
empty.txt  index.html
$ git status                                                        
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)  

        modified:   empty.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        index.html

no changes added to commit (use "git add" and/or "git commit -a")
```
`modified: empty.txt`, `index.html`の部分は<font color="Red">赤色</font>で表示されました。
##7. 変更のあったファイルの内容を確認
```bash:git_test
$ git diff
diff --git a/empty.txt b/empty.txt
index e69de29..0d9d510 100644
--- a/empty.txt
+++ b/empty.txt
@@ -0,0 +1 @@
+こんにちはQiita
\ No newline at end of file
```
`@@ -0,0 +1 @@`の部分は<font color="SteelBlue">青っぽい色</font>
`+こんにちはQiita`の部分は<font color="Green">緑色</font>で表示されました。

##8. addされているファイルを確認
まず、`empty.txt`のみ`add`します。

```bash:git_test
$ git add empty.txt 
$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   empty.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        index.html
```
` modified: empty.txt`の部分は<font color="Green">緑色</font>で表示され、
`index.html`の部分は<font color="Red">赤色</font>で表示されました。
この後、私はすべての変更を`add`して`commit`して`push`しました。
##9. 変更履歴を確認
F君は再び`pull`したみたいです。
####1. ファイルの変更履歴を確認
まずは、どのファイルが変更されたか確認します。

```bash:git_test2
$ git log
commit 84864e87c8ddd18dcd5c590fba4ed4a97d538fe3 (HEAD -> master, origin/master)
Author: yosse95ai <Qiita@qiita.ac.jp>
Date:   Wed Apr 15 03:09:18 2020 +0900

    index.htmlを追加し、empty.txtに内容を追加

commit a067e9cc4bcfb1c08c65cbb6cd33358c0410b24a
Author: yosse95ai <Qiita@qiita.ac.jp>
Date:   Wed Apr 15 02:12:33 2020 +0900

    empty.txtを作成しました。
```
####2. ファイルの内容の変更履歴を確認
次に、どのファイルの内容がどのように変更されたか確認します。

```bash:git_test2
$ git log -p
commit 84864e87c8ddd18dcd5c590fba4ed4a97d538fe3 (HEAD -> master, origin/master)
Author: yosse95ai <Qiita@qiita.ac.jp>
Date:   Wed Apr 15 03:09:18 2020 +0900

    index.htmlを追加し、empty.txtに内容を追加

diff --git a/empty.txt b/empty.txt
index e69de29..0d9d510 100644
--- a/empty.txt
+++ b/empty.txt
@@ -0,0 +1 @@
+こんにちはQiita
\ No newline at end of file
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..e69de29

commit a067e9cc4bcfb1c08c65cbb6cd33358c0410b24a
Author: yosse95ai <Qiita@qiita.ac.jp>
Date:   Wed Apr 15 02:12:33 2020 +0900

    empty.txtを作成しました。

diff --git a/empty.txt b/empty.txt
new file mode 100644
index 0000000..e69de29
```
変更した内容が確認できました。

#さいごに
参考にならなくても責めないでください。。。
個人的には参考(備忘録)になりました。
頭の中の情報が更新され次第項目を追加していきます。

#参考
- [Progate Git Git I][u1]
- [Git インストール][u2]


[p1]:https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506931/8ece60a3-2493-f98c-b084-12f21424cb77.png "New_repository"
[p2]:https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506931/49a5f75d-c962-75ee-68c9-699241bd7d5f.png "create_repository"
[p3]:https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506931/0f4d20b1-595c-3783-ccf0-c1bea60992f6.png "complete"
[p4]:https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506931/613ec7a7-382c-d46f-b0e8-d50484f954d4.png "SSH"
[p5]:https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506931/2694e5a5-87fc-a212-c8e0-5fbc41fe0432.png "success"

[u1]:https://prog-8.com/languages/git
[u2]: https://git-scm.com/book/ja/v2/%E4%BD%BF%E3%81%84%E5%A7%8B%E3%82%81%E3%82%8B-Git%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB