---
# System prepended metadata

title: Git について

---

Git について
==

Git とはソースコードの変更履歴を管理するためのツール。

## 忙しい人のための Git

基本は以下のサイクルでコードの変更履歴を管理する。

1. コードを編集する
2. `git add 編集したファイル`
    - `git status` で add したファイル、add していないファイルが確認できる 
4. `git commit -m "編集した内容を分かりやすくコメントする"`

これで履歴が作られる。
履歴を見たいときは `git log` で見られる。

履歴をサーバにアップロードしたいときは `git push`

## もうちょっと詳しく

Git は 3 つの世界があります。

- ワークツリー
    - 普段 Goland とかで編集してるやつ
- インデックス(ステージとも呼ばれる)
    - add したときに登録される場所
    - .git/index ってファイルが本体
- リポジトリ
    - コミットが積まれていく場所
    - コミット = 履歴 1 回分のこと
    - git commit ってやると、そのときのインデックスの内容で新しいコミットを作り、現在のコミットの上に積む

Git は変更履歴を管理するためのツールなので、変更履歴を自由に再現できる

git log ってやると↓の情報が出てくる

- コミット時刻
- コミットした人(Author)
- コミットメッセージ
- commit ハッシュ

コミットハッシュ = コミットごとに付けられた ID

コミットハッシュを指定すると当時の状態を再現できる

```
git checkout コミットハッシュ
```

