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 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。