以下のような見慣れた出力を、他の処理の入力として使いたいとする。
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: first
new file: second
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: first
Untracked files:
(use "git add <file>..." to include in what will be committed)
third
porcelain
オプションを使うとファイルごとの出力になる。
$ git status --porcelain
MM first
A second
?? third
フォーマットの詳細は
$ man git-status
補足
porcelainとは磁器のことで、gitのコマンドのうち比較的ユーザーフレンドリーな部分をporcelainと呼ぶ。
ただし--porcelain
オプションの機能は、porcelainコマンドを実行することというよりはmachine-readableな出力をさせることのようである。