2012-01-14 11 views
0

私は、最新バージョンが動作していない古いバージョンに戻る必要があります。私はまだすべてのコードを参照してくださいので、これまでのところ、私は以下のが、混乱をしようとした最新のと同じです:1つのリポジトリにgit bisectを実行し、最新バージョンが問題を引き起こしている古いバージョンに移動するには?

git bisect start 
git bisect bad 
git biesct good <VERSION OR PACKAGENAME.VERSION.OF.OLD.NUMBER.WHICH.I.THINK.WAS.GOOD> 

# NOW CONFUSING.. WHAT I HAVE TO TELL TO JUST USE THAT OLD VERSION? ONLY THE CHECKOUT COMMIT ID? 
git checkout <old version commit id>? 

あなたがそれを行う方法を正確に?

フォローアップ:

広告主$ねえ、私たちは、マスタ0のバグの最新のバージョンアップを得ました。 (彼は 嘘をついた、彼はちょうどテストするために私たちを必要とするバグの数百あります)

ステップ1:好奇心@テスター

tester$ cd /var/tmp 
tester$ git clone git://site.com/pizzapasta.git 
tester$ ./autogen.sh; make;make install; run; 
tester$ # failed 40 bugs found, impossible to use it 

ステップ2:古い

tester$ cd /var/tmp/pizzapasta 
tester$ git bisect start   # initialize 
tester$ git bisect bad   # i marked my master/latest is BAD, i dont like/trust it 
            # Now i am going to old version 
tester$ git bisect good <COMMIT-U-THINK_GOOD> 
tester$ git checkout <COMMIT-ID-THAT-WAS-SHOWN-BY-GOOD> 
tester$ ./autogen.sh; make; make install; run; 

に戻ります実行中.....古いものは金で動作します

答えて

1

まず、git statusの出力が空であることを確認します。なぜあなたは同じコードをもう一度見ているのか説明するかもしれません。あなたが引用されてきたコマンドを通過する

、最初の二つは大丈夫です:ちょうど二等分を開始し、現在のバージョンが悪いことをすると言う

git bisect start 
git bisect good 

...。次に、あなたが一度:

git bisect bad <COMMIT-YOU-THINK-IS-GOOD>` 

は... Gitは 自動的にそれはあなたに良い面と悪いマークしたコミット間の約半分の方法ですコミットあなたへを移動します。 (あなたが歴史の中で、この新しいポイントにいる時にコードのかなりの部分が実際に同じかもしれません。)

(その時点でgit bisect bad <COMMIT-YOU-THINK-IS-GOOD>を行うことgit checkout <COMMIT-YOU-THINK-IS-GOOD>git bisect badを行うことと等価であることに注意してください。)

をこの時点であなたがしなければならないのはコードをテストすることだけです。問題が残っている場合は、単に実行します。

git bisect bad 

選択したバージョンのGitが良いと思われる場合は、単に行う

...か:どちらの場合にも

git bisect good 

、gitの意志これらのコマンドを入力するとすぐに新しいバージョンに自動的に移動してテストします。コンパイルされていないバージョンに移動した場合などは、git bisect skipを実行して、現在のバージョンに「良い」と「悪い」のマークを付けずに別のものを選択するようにgitに指示することができます。

基本的に、 f414f31 is the first bad commit(またはそれに類するもの)というメッセージを出力するまで、gitがあなたを動かす新しいバージョンです。

最後に、二分を終了し、ブランチに戻って自分自身を移動するには/あなたが開始する前にあったコミットだけを実行します。

git bisect reset 

(あなたはまた、任意の時点での二等分を中止することを使用することができます何かがうまくいかない場合は上の、またはあなたが混乱する)。

+0

git bisect start; git bisect bad; git bisect good ?私の現在のマスターは悪いです。私はそれを最初にフラグを立ててGOODに行き、それをテストしたかったのです。私は正しい。 – YumYumYum

+0

私が私の答えで説明したように、それらはgit bisectをうまく利用するための初歩的なステップです - このステップの後で、gitがバージョンをテストし続ける必要があります。最初の不正なコミットを見つけることができます。 –

+0

ありがとう、私は非常に優れたバージョンコントローラの私のフォローアップも編集しました。 :) – YumYumYum

関連する問題