git bisectはbadコミットを自動で探す
% git bisect bad-commit good-commit
このあと手動でテストやら動作確認やらが必要だと思っていました。
ところがgoodの時は0を、badの時は1から124のどれかの終了コードを返すスクリプトを用意すれば自動で二分探索して問題のコミットを見つけてきてくれます。
たとえば、grunt build
でこけるようになってしまったので次のようなコマンドで問題のコミットを探してもらいました。
git bisect run grunt build
上に貼ったQiitaの記事では、問題のあったコミットをチェックアウトすると記述されていましたが、 手元で動かした時は一番最後にgoodであったコミットがチェックアウトされていました。
直後のコミットで、問題があったので、そのログや差分を見て修正しました。