git revert の使い方

打ち消すコミットを作る

書き方

git revert コミット [--no-edit]
git revert -m 1 マージコミット

指定したコミットと逆の変更をする新しいコミットを作ります。共有済みの履歴を消さずに取り消せます。マージコミットは -m 1 で「1 番目の親(main)の側に戻す」と指定します。

よく使うオプション

オプション意味
--no-editメッセージを変えずにそのまま記録する
-nコミットせずに、打ち消す変更だけを作る(--no-commit)
-m 1マージコミットを打ち消すとき、1 番目の親の側に戻す
--abortコンフリクトした revert をやめる

例

$ git revert HEAD[main 7e8f9a0] Revert "メニューを足す"
 1 file changed, 12 deletions(-)

最新のコミットと逆の変更をする、新しいコミットを作ります。エディタでメッセージを確かめて閉じます。

$ git revert --no-edit 3f2a1c9

過去の 1 つのコミットを、メッセージの編集なしで打ち消します。

$ git revert -m 1 a1b2c3d

マージで取り込んだ変更をまとめて打ち消します。

$ git revert -n HEAD~2..HEAD

最新の 2 つのコミットを打ち消す変更を作り、あとで 1 つのコミットにまとめます。

よくある間違い・注意

  • revert は履歴を消さずに「打ち消すコミット」を足します。共有したブランチの取り消しにはこちらを使います。
  • 打ち消したマージを、あとで同じブランチから取り込み直すときは、revert のコミットをさらに revert します。

実際に打って練習する

Git コースの Lv21「打ち消す git revert」で覚えます(第3章 時の書庫(書き換えと復旧))。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

Lv1〜10 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。

Git コマンド一覧(使い方と例)へ戻る