[GitHub 100日チャレンジ] Day 70 - Git Bisectで原因コミットを探す
git bisectで正常だったコミットと壊れているコミットの間を二分探索し、バグの原因コミットを見つける方法を学びます。
[GitHub 100日チャレンジ] Day 70 - Git Bisectで原因コミットを探す
git bisectとは
git bisectは、バグが入り込んだ最初のコミットを二分探索で探すGitのデバッグ機能です。
「今は壊れているが、以前のバージョンでは正常だった」という状況で役立ちます。
基本の流れ
1
2
3
git bisect start
git bisect bad
git bisect good v1.0.0
Gitが中間のコミットへ移動するので、テストして結果を伝えます。
1
2
git bisect good
git bisect bad
原因コミットが見つかったら必ず終了します。
1
git bisect reset
自動テストと組み合わせる
1
2
git bisect start HEAD v1.0.0
git bisect run npm test
テストコマンドの終了コードが 0 ならgood、それ以外ならbadとして扱われます。
判断基準を明確にする
bisectではgood/badの基準が重要です。
- good: ログイン後にダッシュボードが表示される
- bad: ログイン後に空白画面になる
基準が曖昧だと、間違ったコミットを原因として特定してしまいます。
今日のゴール
bisectは「いつ壊れたか」を短時間で探すための道具です。正常だった地点と壊れている地点を決め、二分探索で原因コミットを見つけましょう。
この投稿は投稿者によって CC BY 4.0 の下でライセンスされています。
