Git でコミット ID に基づいて特定のコミットに戻すには? [重複] 質問する

Git でコミット ID に基づいて特定のコミットに戻すには? [重複] 質問する

を使用するとgit log、これまでに行ったコミットのリストが表示されます。

commit f5c5cac0033439c17ebf905d4391dc0705dbd5f1
Author: prosseek 
Date:   Fri Sep 3 14:36:59 2010 -0500

    Added and modified the files.

commit c14809fafb08b9e96ff2879999ba8c807d10fb07
Author: prosseek 
Date:   Tue Aug 31 08:59:32 2010 -0500

    Just simple test for core.editor.

... etc ...
  • 特定のコミットに戻すにはどうすればよいですか? たとえば、 に戻りたい場合はどうすればよいですかcommit c14809fafb08b9e96ff2879999ba8c807d10fb07?

  • Git で特定のコミットに戻る他の/より良い方法はありますか? たとえば、各コミットにラベルを付けて、そのラベルとともに戻すことはできますか?

ベストアンサー1

リポジトリをその状態にロールバックしますか、それともローカル リポジトリをそのようにしたいだけですか?

するとreset --hard、ローカル コードとローカル履歴はそのコミットの時点と同じ状態になります。ただし、これを新しい履歴を持つ他のユーザーにプッシュする場合は失敗します。

git reset --hard c14809fa

そして、 の場合reset --soft、HEAD は元の場所に移動しますが、ローカル ファイルなどはそのまま残ります。

git reset --soft c14809fa

それで、このリセットで具体的に何をしたいのですか?

編集 -

リポジトリに「タグ」を追加して、タグに戻ることができます。ただし、タグは実際には sha1 へのショートカットにすぎません。

これを TAG1 としてタグ付けすると、、、またははgit reset --soft c14809faすべて同じことを行います。git reset --soft TAG1git reset --soft c14809fafb08b9e96ff2879999ba8c807d10fb07

おすすめ記事