ファイルを追加する、ステージの状態を見る

# ファイルをさらに追加する
## ファイルをステージする
```
git add ファイル
```
# 演習１
以下の内容をもつファイルhello.txtを作業ツリーに作り、ステージしよう。まだコミットしない。
```
*********@mbp training % vim hello.txt
*********@mbp training % git add hello.txt
*********@mbp training % git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	new file:   hello.txt

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   .idea/workspace.xml

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	.gitignore
```
これでステージされたと思う。

# どのファイルを新たにステージしたかを見る
```
git status
```
HEADが指すコミットと、ステージと、作業ツリーの差を表示する
## 実際使ってみた。
```
*********@mbp training % git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	new file:   hello.txt

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   .idea/workspace.xml

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	.gitignore
```
コミットするものがない場合は
```nothing to commit (working directory clean)```
と表示される。
### クリーン（clean)
未保存の変更がない

### ダーティ(dirty)
未保存の変更がある

## 同じファイルを新たにステージに加えた状態
```
*********@mbp training % git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	new file:   hello.txt

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   .idea/workspace.xml

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	.gitignore
```
その中の
```
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	new file:   hello.txt
```
前の演習の時に2度ステージ（内容は違う）してしまったからこう表示されたのか。
```Changes to be committed:```

```git status```はHEADとステージと作業ツリーを比べて状態を表示する
しかし
操作そのものを追跡しているわけでない。　　

## gitの管理下にないファイル
```
*********@mbp training % git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	new file:   hello.txt

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   .idea/workspace.xml

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	.gitignore
```
この場合は
```.gitignore```というファイルが管理下には言いていない。
追跡されていないファイルとして表示される

## 演習　
本文にあるようにREADMEを修正して、新しいhello.txtとともにコミットしよう。その各段階で```git status```を出力しよう。
```
*********@mbp training % git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	new file:   hello.txt

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   .idea/workspace.xml

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

```
***********@mbp training % vim README.md

***********@mbp training % git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	new file:   hello.txt

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   .idea/workspace.xml
	modified:   README.md

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	.gitignore
```
修正した後はmodified（変更された)と書かれてある。
```
**********@mbp training % vim hello.txt

**********@mbp training % git commit README.md
[master eba864f] 演習課題 RAEDME.mdを修正
 1 file changed, 3 insertions(+), 1 deletion(-)
***********@mbp training % git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	new file:   hello.txt

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   .idea/workspace.xml

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	.gitignore
```
```
***********@mbp training % git commit hello.txt
[master 7143601] 演習課題 hello.txtを新しくコミットする
 1 file changed, 1 insertion(+)
 create mode 100644 hello.txt

**********@mbp training % git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   .idea/workspace.xml

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

no changes added to commit (use "git add" and/or "git commit -a")
```
なるほど一度もコミットされてないファイルは途中で中身が変更されても```new file:```扱いなのか。
```
*********@mbp training % git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   .idea/workspace.xml
	modified:   hello.txt

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

no changes added to commit (use "git add" and/or "git commit -a")
```