コミットを削除したり影響を与えたりせずに、何かが壊れた場所が見つかるまで、以前のコミットに戻ってプログラムを実行したいと考えています。機能していた最後のコミットを見つけたら、何が変更されたのかを現在のコミットに戻して修正することができます。
どうすればいいですか?
コミットを削除したり影響を与えたりせずに、何かが壊れた場所が見つかるまで、以前のコミットに戻ってプログラムを実行したいと考えています。機能していた最後のコミットを見つけたら、何が変更されたのかを現在のコミットに戻して修正することができます。
どうすればいいですか?
を使用してみてくださいgit bisect
。この機能により、コミットを基本的にバイナリ検索できます。物事がまだ良かったときにコミットを選び、物事が壊れたときにコミットを選び、そこから先に進みます。
チュートリアルについては、このページをチェックしてください。
http://www-cs-students.stanford.edu/~blynn/gitmagic/ch05.html
(「すべてがうまくいかなかったのはどこですか?」を検索してください)
Gitはそのための適切なコマンドを提供します:git bisect
。バイナリ検索を実行し、テストされた各コミットにマークを付けることができますgood
。bad
次のコマンドで二等分手順を開始します。
git bisect start HEAD <last good commit>
次に、ソースを作成して実行し、エラーをチェックして、最後にマークを付けます。
git bisect good # or:
git bisect bad
コミットをテストできない場合(ビルドが壊れているなど)、をスキップしてgit bisect skip
ください。
最初の悪いコミットが見つかるまでそれを行います。元のコミットに戻るには、を実行しますgit bisect reset
。
テストするためにいくつかのコミットに戻りたいだけの場合は、次のことができます。git checkout SHA