【Git】git status で変更状況を確認する方法

以前こんなツイートをしました。git add , git commit する前に git status コマンドを使用するまではわかったけどどうやって使うのかわからないと思います。なのでこの記事では git status の詳細を説明していきます。

普段はプログラミングや、フリーランスについて発信しています。<a href="https://twitter.com/div_tomo?ref_src=twsrc^tfw" class="twitter-follow-button" data-lang="ja" data-show-count="false"> フォローする </a><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">git add や git commit する前に絶対やってほしいこと<br><br>ファイルを変更したら git status コマンドでなんのファイルが変更されたかを確認してから git add や git commit する癖をつけましょう<a href="https://twitter.com/hashtag/%E4%BB%8A%E6%97%A5%E3%81%AE%E7%A9%8D%E3%81%BF%E4%B8%8A%E3%81%92?src=hash&amp;ref_src=twsrc%5Etfw">#今日の積み上げ</a> <a href="https://twitter.com/hashtag/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0?src=hash&amp;ref_src=twsrc%5Etfw">#プログラミング</a> <a href="https://twitter.com/hashtag/%E9%A7%86%E3%81%91%E5%87%BA%E3%81%97%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%81%A8%E7%B9%8B%E3%81%8C%E3%82%8A%E3%81%9F%E3%81%84?src=hash&amp;ref_src=twsrc%5Etfw">#駆け出しエンジニアと繋がりたい</a></p>&mdash; Tomoya@Web系フリーランサー (@div_tomo) <a href="https://twitter.com/div_tomo/status/1695694067261403627?ref_src=twsrc%5Etfw">August 27, 2023</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

# 変更状況を確認する

変更状況を確認するには `git status` コマンドを使います。

> ＞_ コマンドライン
> 

```Bash
> git status
```

# git status の使用方法

```mermaid
flowchart LR

A[ワークツリー] <-- 変更されたファイル --> B((ステージ)) <-- 変更されたファイル --> C((リポジトリ))
```

ワークツリーとステージの間で変更されたファイル「**git add で追加してから変更したワークツリーのファイル**」

ステージとリポジトリの間で変更されたファイル「**git commit で追加してからステージに追加されたファイル**」

それぞれを表示してくれます。

## 変更状況を確認

 `git add` で `index.html` ファイルをステージに追加した状態で、`git status` コマンドを実行した場合

> ＞_ コマンドライン
> 

```Bash
> git status

On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   index.html
```

では、`index.html` ファイルに少し変更を加えてから `git status` コマンドを実行してみましょう。

> ＞_ コマンドライン
> 

```Bash
> git status

On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   index.html

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:   index.html
```

すると、ステージに追加されていない変更があるよ と表示されました。

どのファイルがというと、modified:   index.html が変更されたよ と表示されているわけです。

では、このファイルを `git add` でステージに追加して `git status` で確認していきます。

> ＞_ コマンドライン
> 

```Bash
> git add index.html

> git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   index.html
```

次に表示されているのが `Changes to be committed:` でこれはコミットするべき内容があるよ と表示されています。

どのファイルがというと、`new file:   index.html` がコミットするべき内容だよ と表示されているわけです。

では次にこのファイルをコミットして確認していきましょう。

> ＞_ コマンドライン
> 

```Bash
> git commit -m "statusコマンドの確認"
[master 0420876] statusコマンドの確認
 1 file changed, 2 insertions(+)
 create mode 100644 index.html

> git status
On branch master
nothing to commit, working tree clean
```

git commit でファイルをコミットして

git status で確認すると 現在コミットするべき変更は無いよ と表示されました。

このようにファイルを変更したら `git status` コマンドでなんのファイルが変更されたかを確認してから `git add` や `git commit` する癖をつけてください。