Git で最新のローカルコミットを元に戻すにはどうすればいいですか? 質問する

Git で最新のローカルコミットを元に戻すにはどうすればいいですか? 質問する

誤って間違ったファイルをコミットしてしまいましたギットただし、コミットをまだサーバーにプッシュしていません。

ローカルリポジトリからこれらのコミットを元に戻すにはどうすればよいですか?

ベストアンサー1

コミットを取り消してやり直す

$ git commit -m "Something terribly misguided" # (0: Your Accident)
$ git reset HEAD~                              # (1)
[ edit files as necessary ]                    # (2)
$ git add .                                    # (3)
$ git commit -c ORIG_HEAD                      # (4)
  1. git resetは、元に戻すコマンドです。作業ツリー (ディスク上のファイルの状態) を変更せずに、最後のコミットを元に戻します。再度コミットする前に、再度追加する必要があります。
  2. 修正する作業ツリーファイル。
  3. git add新しいコミットに含めたいもの。
  4. 古いコミット メッセージを再利用して変更をコミットします。reset古いヘッドを ; にコピーしました.git/ORIG_HEADcommit-c ORIG_HEADエディタが開き、古いコミットのログメッセージが最初に表示され、編集できるようになります。メッセージを編集する必要がない場合は、-Cオプション。

あるいは、前のコミット(またはそのコミットメッセージ)を編集するにはcommit --amend現在のインデックス内の変更を前のコミットに追加します。

サーバーにプッシュされたコミットを削除する(元に戻すのではなく)には、 で履歴を書き換えるgit push origin main --force[-with-lease]必要があります。; を使うのはほとんどの場合悪い考えです--force--force-with-lease代わりに、Git マニュアル:

すでに公開されているコミットを修正する場合は、履歴を書き換えることの影響を理解する必要があります。


参考文献

git reflogSHA-1を決定するために使用できます元に戻したいコミットの。この値を取得したら、上で説明した一連のコマンドを使用します。


HEAD~と同じですHEAD~1。記事Git の HEAD とは何ですか?複数のコミットをアンコミットしたい場合に役立ちます。

おすすめ記事