超初心者の「Git」使い方まとめ

#はじめに

**「就職してから困る前にGitの最低限の知識を付けておこう」**

最近になってそう思って、個人で使い始めました。

チーム開発で使うものというイメージですが、
個人で開発や制作してても非常に役に立つので早めに使い慣れることをお勧めします！

まずは初歩的な機能でいいので使ってみるだけで意識が変わると思います。

ということで
「まだGitを使ったことがない。」
「これから使いたい」

そういった方々に向けて
とりあえず使ってみるまでの進め方を書いていきます。
自分の復習、メモ代わりの為でもあります！

##ターミナルを開く
<img width="818" alt="スクリーンショット 2020-05-22 1.33.38.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/555520/aea99242-661d-8c79-dc01-8a602e89127f.png">

Gitは基本的にターミナルで扱います。（Windowsはコマンドプロンプト）
ターミナルの開き方は以下になります。

Mac
---
command + Spaceで検索から「ターミナル」と入力。
もしくはFinder→アプリケーションフォルダ→ユーティリティフォルダ内

Windows
---
スタートメニューの検索で「cmd.exe」と入力。

##ユーザー情報を登録

Gitを使うにはまずユーザーの名前とメールアドレスの登録が必要です。
一度登録すれば以降は必要ありません。

```terminal
$ git config --global user.name "任意の名前"
$ git config --global user.email "登録したいメールアドレス"
```

これで登録が完了してGitを使う準備ができました！

##ディレクトリを新規作成

```terminal
$ cd desktop #「cd 場所」で作成したい場所に移動
$ mkdir practice #「mkdir ディレクトリ名」で新規ディレクトリ作成
$ cd practice #作成したディレクトリを指定
$ git init #ディレクトリ初期化
```

これでgitによるバージョン管理を開始できます！

##ディレクトリに新規ファイルを作成しGitの追跡を開始

```terminal
$ echo "hello world" > hello.html #新規ファイル作成
$ git add hello.html #ステージングエリアにhello.html追加
$ git status #new file: hello.htmlと表示すればOK
```
新規ファイル作成はディレクトリから直接作成しても問題ありません。
元々ファイルがあればいきなりgit addからでOKです。
ここではまずGitの追跡を開始するファイルを決めてください。

**ステージングエリアって何？**

Gitでは主に
「ワーキングディレクトリ」「ステージングエリア」「リポジトリ」
3つのエリアに分かれていてそれぞれコマンドで移動できます。

>  ワーキングディレクトリ

>>  git add

>  ステージングエリア

>>  git commit

>  リポジトリ

git addすることで「ワーキングディレクトリ」から「ステージングエリア」へ移動します。

移動したファイルはcommitできるようになります。

ステージングエリアへ置くことによってセーブ(commit)したいファイルを選べるようになり、

余計な記録を増やさず、管理や作業をしやすくなります。

個人で使う分にはあまり意識せずadd→commitとすぐ保存してしまっても大丈夫です！

#まとめてgit addしたい！

```terminal
$ git add --all #全てステージングエリアへ追加
```

一度に複数のファイルで作業して指定するのが大変な時は使います。

##commitする
```terminal
$ git commit -m "first commit" #git add -m "コミットメッセージ"
```

これでコミットができました！
コミットされたファイルはリポジトリに保存されます。

##コミットメッセージって何？
重要な要素なのでしっかり書きましょう。

コミットメッセージを書かなければGitにコミットができません！

コミットメッセージは自分や他人が**「今回の修正で何を行ったか」**を示しておくものです。

わかりやすい表現を心がけましょう。


##そもそもコミットって何？

コミットとは追加や変更したファイルをリポジトリという保存場所に登録することです。

コミットすることでログに記録されていきます。

コミットは**ステージングエリアに対してのみ**実行されます。

git addで追加してからコミットを行って下さい！

コミットするタイミングは自由ですが、

* 一つのタスクが完了した時
* 一日の作業の終わり

などを私は目安にしています。

##ログを確認する
こちらのコマンドでコミットのログを表示します。

```terminal

$git log
```

以下がコミットのログです。

```
commit [コミットのハッシュ値（識別IDのようなもの）] (HEAD -> master)
Author: [登録ユーザー] <mailadoress@example.com>
Date:   [コミットした日時]

    first commit #コミットメッセージ
```


#作業を元に戻したい！

何か失敗して上手く動かなくなった時に編集内容を元に戻したい。

個人で使う機能はこれが多いと思うので最後に紹介します。

```terminal
$ git checkout . #ステージング前の変更内容に戻します。
```

.で全てを指定。任意のファイル名でも指定可能です。
「ステージング前」とはaddする前の状態と考えて下さい。

---

```terminal
$ git checkout HEAD -- ファイル名 #ステージ後のファイルを最後にコミットした状態に戻す
```
最後にコミットした状態からの編集内容を取り消します。

---

```terminal
$ git reset --hard HEAD #編集とステージングの変更を取り消し最後にコミットした状態に戻す
```

作業ディレクトリが未保存でも強制で上書きされます。

##おわりに

これで始め方はわかっていただけたと思います。

他にもブランチやGitHubと連携しPushするなどGitには様々な機能があります。

これでご興味を持っていただけたらどんどん色んな機能を使ってみて下さい。

私もまだ使い出したばかりなのでこれから慣れていきたいと思ってます。

**一緒にがんばってGitを極めましょう！**

##*Links*
*[やりたいことが今すぐわかる 逆引きGit入門](https://www.amazon.co.jp/%E3%82%84%E3%82%8A%E3%81%9F%E3%81%84%E3%81%93%E3%81%A8%E3%81%8C%E4%BB%8A%E3%81%99%E3%81%90%E3%82%8F%E3%81%8B%E3%82%8B-%E9%80%86%E5%BC%95%E3%81%8DGit%E5%85%A5%E9%96%80-%E9%AB%98%E8%A6%8B%E9%BE%8D-ebook/dp/B081J7DJT1/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=%E9%80%86%E5%BC%95%E3%81%8DGit&qid=1590085333&sr=8-1)*
*[Gitのコミットメッセージの書き方](https://qiita.com/itosho/items/9565c6ad2ffc24c09364)*
*[[git] 戻したい時よく使っているコマンドまとめ](https://qiita.com/rch1223/items/9377446c3d010d91399b)*