0

「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?

このケースを処理する良い方法は何ですか?

4

1 に答える 1

3

お気付きかもしれませんが、git は「見栄えの良さ」や「直感的なインターフェイス」にそれほど重点を置いていません。あなたは答えと適切な git の方法を推測しました。

これは、少し醜いことを除けば、(あまり一般的ではない)ケースを完全に処理するため、gitで特別なサポートを行う必要はなく、決してそうではないと想定できます。

編集:私は間違っていました。Git はバージョン 2.7 でこれに対するサポートを追加しました –この回答を参照してください。

于 2013-07-16T16:01:02.243 に答える