コミットを打ち消す (Revert)
CoddyのTerminalジャーニー「バージョン管理」セクションの一部 — レッスン 43/58。
コミットがすでに他の人と共有されている場合、元のIDが失われるため、それを修正(amend)することはリスクが伴います。より安全な選択肢は git revert です。
git revert HEADgit revert は、対象のコミットによる変更を打ち消す、まったく新しいコミットを作成し、元のコミットはそのまま残します。履歴には「Xを行い、その後Xを打ち消した」と記録されます。
最新のコミットだけでなく、IDを指定して任意のコミットを元に戻すことができます:
git revert a1b2c3d--no-edit を使用してエディタをスキップし、デフォルトのリバートメッセージを適用します:
git revert --no-edit HEADデフォルトのメッセージは Revert "Original subject" のようになり、元のメッセージが本文にエコーされます。
チャレンジ
簡単フォルダには app.txt が含まれています。リポジトリを初期化し、2つのコミットを作成してください:
- メッセージ
Add appでapp.txtを追加します。 app.txtにbrokenを追記し、メッセージAdd broken lineでコミットします。
最新のコミットを(エディタなしで)元に戻し、壊れた行を取り消します。app.txt の内容を表示してください。
チートシート
git revert は、履歴を保持したまま、対象のコミットによる変更を打ち消す新しいコミットを作成します:
git revert HEAD # 最新のコミットを元に戻す
git revert a1b2c3d # IDを指定して任意のコミットを元に戻す
git revert --no-edit HEAD # エディタをスキップし、デフォルトのメッセージを使用するデフォルトの revert メッセージは、Revert "Original subject" という形式に従います。
自分で試してみよう
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。