二等分ワークフローを使用する
Bisect は、問題が発生したコミットと問題を持たないコミットの間の履歴を半分にすることで、問題を引き起こした最初のコミットを見つけます (git bisect など)。 2 つのコミットを選択し、コミット GitTree のチェックアウトをテストして、Good または Bad とマークし、First bad commit という名前が付けられるまで繰り返します。
GitTree で動作します 無料: サインインすると、すべてのローカル Git 機能が利用できます。
始める前に
- 問題が存在するコミットと問題が存在しない古いコミット、およびそれをテストする方法がわかります。
- 変更をコミットまたはスタッシュします。bisect はコミットをチェックアウトします。
どこで見つけられますか
- グラフ内の 2 つのコミットを選択し、右クリックします: Bisect Between These Commits。
| アクション | macOS | WindowsとLinux |
|---|---|---|
| Jump to HEAD | ⌘⇧H | Ctrl+Shift+H |
ステップ
2 つのコミットの間で開始する
問題のあるコミットと問題のない古いコミットを選択し (Mac の場合は Ctrl キーを押しながらクリック、⌘ キーを押しながらクリック)、Bisect Between These Commits を選択します。新しいものは悪いものとして扱われ、古いものは良いものとして扱われます。
チェックアウトされたコミットをテストする
GitTree はコミットを途中でチェックアウトし、テストが必要なリビジョンがいくつ残っているかを示します。テストをビルドまたは実行します。
マークしてください
バナーで、問題がない場合は Good、問題がある場合は Bad、このコミットをテストできない場合は Skip を選択します。
答えを読む
コミットが 1 つ残っていると、GitTree は SHA で First bad commit: を示します。 Show in Graph がそれを選択します。
期待される結果
どのコミットが問題を引き起こしたか正確にわかります。 End Bisect を選択して、最初の場所に戻ります。
ヒント
- 各ステップで残りが半分になります。1,000 回のコミットには約 10 ステップかかります。
- 二分化中は、切り離された HEAD 上にいます。それは予想されています。
- End Bisect は常に出発点に戻ります。
何か問題が発生した場合
これらのコミット間の二分化はグレー表示されます
正確に 2 つのコミットを選択し、進行中のマージまたはリベースを最初に終了または中止します。
質問
コミットがビルドされない場合はどうなりますか?
Skipを選択してください。 Git は代わりに近くのコミットを選択します。その場合、答えは 1 つのコミットではなく、短い範囲である可能性があります。