UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【Git】git bisect で問題箇所を特定する

今更ながらgit bisectというコマンドを知ったのでメモ

git-scm.com

git bisectは何か問題が発生したときに、問題がなかった状態から問題が発生した状態の間のコミットをひとつづつテストをしながら進められるコマンド

手で一個一個コミットをチェックアウトしながらすることもできるが、これを使うと割りかし楽に実施することができる

使い方は以下のように悪い状態のコミットと、良い状態のコミットを引数に渡す

$ git bisect start <bad-commit> <good-commit>

これで良い状態と悪い状態の間の適当なコミットにチェックアウトする

このとき、良し悪しがわかるテストスクリプトがあれば以下のようにして確認することができる

$ git bisect run <my_script> <arguments>

これで問題がなければ

$ git bisect good

で次のコミットに移り、

$ git bisect bad

でより古いコミットに移動する

これを繰り返すと問題を特定することができる

最後に以下を実行して、実行前の状態に戻して終了する

$ git bisect reset