Gitのgit statusで-sオプションを試してみた

はじめに

この記事では、「git statusの-sオプションの意味と実際に使ったらどうなるか」について書いています。

Gitにはたくさんのコマンドがあり、また自分は普段TortoiseGitを使っていて全然コマンドを覚えてないので、ちゃんと自分でコマンドを試しながら学んでみるべく記事にしました。

自分に向けた備忘録の意味もありますが、「Gitのコマンドにまだ習熟してない人」な人の一助になれば嬉しいです。

要点だけ

  • git status -sを使うと、結果の出力文がコンパクトになる。

git statusは何をするコマンドなのか

まずはgit statusについて説明します。

git statusは以下の3つに関する情報を表示します。

  • 変更されており、インデックス領域にステージングされたファイル
  • 変更されているがインデックス領域にステージングされていないファイル
  • Gitで管理されていないファイル

実験環境

以下の環境、フォルダ構成で実験をしていきます。

sample
├ .git
│  └ ...(省略)...
├ alpha.txt  <- 変更されており、また`git add`でインデックス領域にステージングしたファイル
├ beta.txt   <- 変更されているがインデックス領域にステージングしていないファイル
└ gamma.txt  <- Gitで管理されていないファイル

git statusをしてみる

上で示したsampleフォルダに対してgit statusを実行すると、以下のような結果になります。

On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   alpha.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:   beta.txt

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

分かりやすく、また「こうしたい時はこのコマンド使ってね」という出力も親切に出力してくれてます。

ただ、Gitをよく知っている方などには余計な情報かもしれません

-sオプションで出力がどう変わるか

では次にgit status -sをした時に出力がどうなるかを見てみましょう

 M alpha.txt
M  beta.txt
?? gamma.txt

非常にコンパクトになりましたね。sとはshortの略で、出力をコンパクトにしてくれます。

ファイル名の前についている文字は以下のような意味です。

  • M: 変更されており、インデックス領域にステージングされたファイル
  • M: 変更されているがインデックス領域にステージングされていないファイル
  • ??: Gitで管理されていないファイル

おわりに

git status-sオプションの意味と実際に使ったらどうなるか」について解説しました。

出力がコンパクトになるという些細な変化ですが、読みやすくなることで開発の効率をちょっと良くすることができるかもしれません

さいごに、記事を書く上で参考にしたサイトのリンクを以下に掲載します。合わせて読んでいただくと良いかと思います。

qiita.com