「git bisect」の通常の使用例は、参照の先端を「悪い」状態と宣言し、履歴で最新の「良い」状態を検索することです。これは、バグを導入したコミットを検索するときに意味があります。
ただし、最新のコミットで修正された古いコードでバグが発見されることがあります。問題は、どのコミットがこのバグを修正したかということです。「良い」と「悪い」という言葉の逆の意味で使用することができますgit bisect
。つまり、修正されたバグを「悪い」状態、バグを「良い」状態と見なすことができます。しかし、これは少しややこしいです。「良い」状態で bisect を開始し、「悪い」状態を検索した方がわかりやすいかもしれません。しかし、gitはそのアプローチを好まないようです:
$ git bisect start
$ git bisect good
$ git checkout <commit with known bug>
$ git bisect bad
Some good revs are not ancestor of the bad rev.
git bisect cannot work properly in this case.
Maybe you mistake good and bad revs?
このケースを処理する良い方法は何ですか?