【Git】リバート(revert):コミットを安全に取り消す方法!
この記事からわかること
- Gitのコミットを安全に取り消す方法
- revertコマンドの使い方とオプション
- resetとの違い
index
[open]
\ アプリをリリースしました /
友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-
posted withアプリーチ
リバート:revertとは
Gitのリバート(revert)とは、特定のコミットを取り消すコマンドです。具体的には特定のコミットを打ち消す内容のコミットを追加します。指定したコミット以降の修正は変化はありません。
「打ち消す内容のコミットを追加」するだけなので対象のコミット履歴は削除されずに残ります。コマンドを実行するとステージング状態になるわけではなくコミットされる点も注意が必要です。
同じような役割を持つreset
コマンドは指定したコミットまで全て戻すメソッドですので違いに注意してください。
まとめ
- 特定のコミットを取り消すコマンド
- 指定したコミット以降の修正は変化なし
- 具体的には「打ち消す内容のコミットを追加」する
- 対象のコミット履歴は消えずに打ち消すコミット履歴も残る
使い方
リバートを実行するにはrevert
コマンドに対象のコミットを識別するためのコミットハッシュ値を渡します。
おすすめ記事:【Git】Commitとは?役割とオプションの種類!ハッシュ/DAG/HEAD
$ git revert [コミット]
実行するとVim
が起動しリバートのコミットメッセージを編集することができます。そのまま閉じたい場合は:q
と入力します。
おすすめ記事:【Linux】vi(Vim)エディタとは?コマンドモードの切り替え方や使い方
Revert "READMEファイルの追加"
This reverts commit 2a48576406d8fe2019b5f1ba5fc2bc6ced9b9f10.
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
# Changes to be committed:
# modified: 対象ファイルパス
#
コミットハッシュ値はgit log
などを実行することで確認できます。
$ git log
commit 2a48576406d8fe2019b5f1ba5fc2bc6ced9b9f10
Author: USERNAME <USER EMAIL>
Date: Tue Jul 2 21:01:51 2024 +0900
READMEファイルの追加
リバートコミットメッセージの編集をしない
--no-edit
オプションを付与することでリバートコミットメッセージの編集をしないようにすることも可能です。
$ git revert [コミット] --no-edit
リバートコミットをしない
-n
または--no-commit
オプションを付与することでリバートした内容を即座にコミットしないようにすることも可能です。
$ git revert [コミット] -n
$ git revert [コミット] --no-commit
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。