3

コミットを削除したり影響を与えたりせずに、何かが壊れた場所が見つかるまで、以前のコミットに戻ってプログラムを実行したいと考えています。機能していた最後のコミットを見つけたら、何が変更されたのかを現在のコミットに戻して修正することができます。

どうすればいいですか?

4

3 に答える 3

6

を使用してみてくださいgit bisect。この機能により、コミットを基本的にバイナリ検索できます。物事がまだ良かったときにコミットを選び、物事が壊れたときにコミットを選び、そこから先に進みます。

チュートリアルについては、このページをチェックしてください。

http://www-cs-students.stanford.edu/~blynn/gitmagic/ch05.html

(「すべてがうまくいかなかったのはどこですか?」を検索してください)

于 2012-07-09T06:12:04.823 に答える
6

Gitはそのための適切なコマンドを提供します:git bisect。バイナリ検索を実行し、テストされた各コミットにマークを付けることができますgoodbad

次のコマンドで二等分手順を開始します。

git bisect start HEAD <last good commit>

次に、ソースを作成して実行し、エラーをチェックして、最後にマークを付けます。

git bisect good # or:
git bisect bad

コミットをテストできない場合(ビルドが壊れているなど)、をスキップしてgit bisect skipください。

最初の悪いコミットが見つかるまでそれを行います。元のコミットに戻るには、を実行しますgit bisect reset

于 2012-07-09T06:12:38.223 に答える
2

テストするためにいくつかのコミットに戻りたいだけの場合は、次のことができます。git checkout SHA

于 2012-07-09T11:01:04.553 に答える