1. ホーム
  2. git

[解決済み] GitでコミットIDを元に特定のコミットに戻す?重複

2022-03-21 05:41:57

質問

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 で特定のコミットに戻るための、他の/より良い方法はありますか?例えば、各コミットに何らかのラベルを付けて、そのラベルでコミットを戻すことはできますか?

解決方法は?

その状態にレポをロールバックしたいのか、それともローカルレポをそのように見せたいだけなのでしょうか?

もし、あなたが reset --hard を実行すると、あなたのローカルコードとローカルヒストリがそのコミット時のようになります。しかし、これを新しい履歴を持つ他の人にプッシュしようとすると、失敗します。

git reset --hard c14809fa

そして、もしあなたが reset --soft を実行すると、HEADは元の場所に移動しますが、ローカルファイルなどはそのまま残ります。

git reset --soft c14809fa

では、このリセットで具体的に何をしたいのでしょうか?

編集する

レポに "tags" を追加して...タグに戻ることができます。しかし、タグは実際にはsha1へのショートカットに過ぎないのです。

これをTAG1とタグ付けすることができます。 git reset --soft c14809fa , git reset --soft TAG1 または git reset --soft c14809fafb08b9e96ff2879999ba8c807d10fb07 は、すべて同じことをします。