2

git bisectセッションを開始するときの私の通常のワークフローは次のとおりです。

git bisect start          # start a bisect session
git bisect bad            # I noticed that the current state is broken

さて、過去にうまくいったことはよく知っていますが、どのバージョンが良かったかはまだわかりません。そのため、通常、作業ツリーを古い状態に戻し、ビルド、テストを行い、動作するバージョンが見つかるまで繰り返します。でマークできgit bisect goodます。

「作業ツリーを古い状態に戻す」手順を実行するための最良の方法は何ですか?git reset --hard <some_good_rev>git checkout <some_good_rev>?他に何かありますか?あなたの答えを正当化してください。

4

2 に答える 2

8

私は通常、良い回転がどこにあるかわからないので、それを見つけなければなりません。どれだけ前に戻るのが良いかを推測します。たとえば、32回転です。ブランチの先端から開始し、クリーンな作業ディレクトリを使用します。

$ git checkout HEAD~32

テストを実行します。それが良い回転である場合は、二等分を開始します。そうでない場合は、もう少し戻ってください。

$ git checkout HEAD~32

すすぎ、泡立て、繰り返します。

なぜ「gitcheckout」なのか?「gitreset」は分岐点を「ヒント」としてコミットするものを変更しますが、gitcheckoutは変更しないためです。

于 2010-01-19T19:54:44.113 に答える
1

機能が機能したバージョン(機能を導入したコミット?)がわからない場合は、バイセクトの利点の多く(すべて?)を失っているように見えます。機能が機能した場所に少なくとも1つのコミットがあったことがわかっている場合は、機能が機能した最新のコミットである必要はありませんが、そのコミットに適切なフラグを付けてください。そうでなければ、あなたは基本的に自分で二等分をしているのです。

于 2010-01-19T19:57:17.003 に答える