二等分する前にコミットし、特定の作業ツリーを変更するための最良の方法は何ですか?

StackOverflow https://stackoverflow.com/questions/2096561

  •  21-09-2019
  •  | 
  •  

質問

私の通常のワークフロー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>?何か他の?あなたの答えを正当化してください。

役に立ちましたか?

解決

私はそれを見つけるために持っているので、良いrevが、ここで

私は、通常は知りません。良いかもしれませんどのようにまでさかのぼると思います。レッツたとえば、32の回転数。クリーンな作業ディレクトリと枝の先端から開始し、かつます:

$ git checkout HEAD~32

テストを実行します。それは良いREVだ場合は、二等分開始。そうでない場合は、戻っていくつかの詳細ます:

$ git checkout HEAD~32

リンス、泡立て、繰り返します。

なぜ "gitのチェックアウト?" 「gitのリセットは」その「先端」と分岐点をコミットした変更されますが、gitのチェックアウトはないので。

他のヒント

あなたは機能が働いていたすべてのバージョン(つまり、機能を導入しましたコミット?)確かに知っていない場合は、

、あなたは二分の利益の(すべての?)多くを失うように見えます。あなたが知っている場合は機能が働いていたところ、少なくともあったことが一つは良いとして1ということ、それは必ずしもない場合でも機能が働いていたところ、最新のコミット、単にフラグをコミットします。そうでなければ、あなたは基本的に自分で二分やってます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top