Closed1
git diff がある場合もしくは untracked なファイルがある場合にエラーの終了コードを返すコマンド

やりたいこと
何らかのコマンドで自動生成されたコードを git へコミットし忘れていないかを CI でチェックしたい
そのために CI 上で自動生成コマンドを実行したあとで、git の差分があればエラーの終了コードを返してくれるコマンドがほしい
解決策
このコマンドで git diff で差分がある場合と untracked なファイルがある場合に終了コード 1
でエラーとすることができる
$ test -z "$(git status -s)"
[[ ]]
を使った書き方でも同様の結果が得られる
$ [[ -z $(git status -s) ]]
メモ
-
git diff --exit-code
で git diff がある場合にエラーにすることができるが、git 管理されていない untracked なファイルがある場合にはエラーにならない - untracked なファイルがあるかは
git status
で確認する必要がある - untracked なファイルがある場合にも対応したこのコマンドはこちらのブログで解説されていた
このスクラップは2021/02/24にクローズされました
ログインするとコメントできます