gitのworkspace内がcleanかどうか確認してからコマンドを使いたいことがあった。そこで変更があるかをgitでチェックする方法について調べたのでメモ。 結論としては以下のようにすると良い。 if [ -z "$(git status --porcelain)" ]; then # Working directory clean else # Uncommitted changes fi perlとかだとこんな感じ。 if (`git status --porcelain`) { warn 'dirty'; } else { warn 'clean'; } ちなみにgit diff --exit-codeという方法でも行けそうだったので試してみていたのだけど、こちらはファイルの変更は検知できたけど、ファイルの追加(Untracked files)は検知できなかったので、うまくいかな