今更ながらgit bisect
というコマンドを知ったのでメモ
git bisect
は何か問題が発生したときに、問題がなかった状態から問題が発生した状態の間のコミットをひとつづつテストをしながら進められるコマンド
手で一個一個コミットをチェックアウトしながらすることもできるが、これを使うと割りかし楽に実施することができる
使い方は以下のように悪い状態のコミットと、良い状態のコミットを引数に渡す
$ git bisect start <bad-commit> <good-commit>
これで良い状態と悪い状態の間の適当なコミットにチェックアウトする
このとき、良し悪しがわかるテストスクリプトがあれば以下のようにして確認することができる
$ git bisect run <my_script> <arguments>
これで問題がなければ
$ git bisect good
で次のコミットに移り、
$ git bisect bad
でより古いコミットに移動する
これを繰り返すと問題を特定することができる
最後に以下を実行して、実行前の状態に戻して終了する
$ git bisect reset