二等分する前にコミットし、特定の作業ツリーを変更するための最良の方法は何ですか?
-
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ということ、それは必ずしもない場合でも機能が働いていたところ、最新のコミット、単にフラグをコミットします。そうでなければ、あなたは基本的に自分で二分やってます。
所属していません StackOverflow