gitのworking treeがdirtyだったら失敗するターゲット
Makefileに以下のようなターゲットを定義しておくと、gitレポジトリのworking treeがdirtyのときに失敗する。
tree-clean:
@if [ $$(git status -s | wc -l) -ge 1 ]; then echo "Error: local tree is dirty."; false; fi
どっかに手動でデプロイするときやDockerイメージを作るときなどに、ローカルに余計なものがなくて当該のコミットをチェックアウトしていれば結果が再現する、ことを担保したいときに使う。