Gitで変更内容をコミットした際に、何かしらの理由で変更を取り消したい時があると思います。
その際に活用できるのが、git revertコマンドです。
今回は、git revertコマンドを使用する方法について解説していきたいと思います。
revertコマンドで使用できるオプションも合わせて紹介したいと思いますので、ぜひ参考にしてみてください。
git revertとは?
git revertコマンドは、既存のコミットを取り消すことができるコマンドです。
コマンドを実行することにより、特定のコミットの変更内容を打ち消す新しいコミットを作成します。
同じく、コミットを取り消すコマンドに git resetがありますが、resetコマンドはコミットそのものを無かったことにするのに対し、revertコマンドは元のコミットは削除されず履歴に残るのが特徴です。
履歴の書き換えが行われないため、より安全に操作することができます。
git revertの使い方
git revert コマンドを使用する際の構文は、以下の通りです。
git revert [打ち消したいコミットID]コミットIDは、git logコマンドや git showコマンドなどで確認することができます。
また、コミットIDの他に、HEADで指定することもできます。
git revert e3e6b1eaf0ee276335799459b91e8283d2728535git revert HEADrevertで取り消したいコミットのIDを探す
先ほども解説したように、コミットIDは git logコマンドや git showコマンドなどで確認することができます。
git logcommit e3e6b1eaf0ee276335799459b91e8283d2728535 (HEAD -> master, origin/master, issue3)
Author: User <User@gmail.com>
Date: Fri Nov 15 12:07:19 2019 +0900
sampleコミット1
commit 18647eb1375858e6fe5320c23ef0264d094fa5c0
Author: User <User@gmail.com>
Date: Fri Nov 15 12:04:10 2019 +0900
sampleコミット2表示されているログのうち、commitの項目に書かれているのがコミットIDです。
git showコマンドで表示した場合も、同様に表示されています。
git showcommit e3e6b1eaf0ee276335799459b91e8283d2728535 (HEAD -> master, origin/master, issue3)
Author: User <User@gmail.com>
Date: Fri Nov 15 12:07:19 2019 +0900
sampleコミット1
diff --git a/myfile.txt b/myfile.txt
index 0cb8d50..ba7fc2f 100644
--- a/myfile.txt
+++ b/myfile.txt
@@ -1,3 +1,4 @@
sampleテキスト1
-sampleテキスト2
\ No newline at end of file
+sampleテキスト3git revertコマンドの使い方【応用編】
git revertコマンドは、オプションを付けて実行することで任意に挙動を変更することができます。
使用可能ないくつかのオプションについて、順に紹介していきたいと思います。
revert実行時のメッセージを編集する
オプションを付けずに git revertコマンドを実行した場合、コミットメッセージは自動で 「Revert + 取り消し元のコミットメッセージ」 に固定されます。
任意のコミットメッセージを記載したい場合は、-eオプションを付けてコマンドを実行しましょう。
git revert -e HEAD-eオプションを付けることでテキストエディタが開かれるため、記述したい内容を編集して反映させることができます。
コミットを作りたくない場合のオプション
git revertコマンドは上述したように、基本的にはコミットの打ち消しと共に新たなコミットを作成する仕様となっていますが、オプションを付けることでコミットを作成せずに変更内容のみを取り消すこともできます。
コミットを作成せずにコマンドを実行したい場合は、-nオプションを使用します。
git revert [commit] -n複数のコミットを一度に取り消したい場合に使用すると便利なオプションです。
mergeコミットを打ち消すには?
マージコミットを git revertコマンドで取り消す場合、オプションがないとエラーが表示されます。
revertコマンドでマージを取り消す際は、-mオプションを付けて実行します。
git revert -m 1 HEADマージコミットを取り消す場合は、マージした2つのコミットのうちのどちらに戻すかを指定する必要があります。
-mオプションの後ろに、戻したいコミットを示す数字(基本的には1、もしくは2)を記述します。
まとめ
いかがでしたか?今回は、git revertコマンドを使用する方法について解説しました。
コミット前に、指定した内容で変更していいか確認することはもちろん大事ですが、様々な理由でコミットを取り消したいケースは出てくると思います。
万が一コミットを間違えてしまった時などでも慌てずに済むよう、コマンドの使い方をしっかりと確認しておきましょう。
Gitの勉強方法は?
書籍やインターネットで学習する方法があります。昨今では、YouTubeなどの動画サイトやエンジニアのコミュニティサイトなども充実していて多くの情報が手に入ります。
そして、より効率的に知識・スキルを習得するには、知識をつけながら実際に手を動かしてみるなど、インプットとアウトプットを繰り返していくことが重要です。特に独学の場合は、有識者に質問ができたりフィードバックをもらえるような環境があると、理解度が深まるでしょう。
ただ、Gitに限らず、ITスキルを身につける際、どうしても課題にぶつかってしまうことはありますよね。特に独学だと、わからない部分をプロに質問できる機会を確保しにくく、モチベーションが続きにくいという側面があります。独学でモチベーションを維持する自信がない人にはプログラミングスクールという手もあります。費用は掛かりますが、その分スキルを身につけやすいです。しっかりと知識・スキルを習得して実践に活かしたいという人はプログラミングスクールがおすすめです。
プログラミングスクールならテックマニアがおすすめ!
ITスキル需要の高まりとともにプログラミングスクールも増えました。しかし、どのスクールに通うべきか迷ってしまう人もいるでしょう。そんな方にはテックマニアをおすすめします!これまで多くのITエンジニアを育成・輩出してきたテックマニアでもプログラミングスクールを開講しています。
<テックマニアの特徴>
・たしかな育成実績と親身な教育 ~セカンドキャリアを全力支援~
・講師が現役エンジニア ~“本当”の開発ノウハウを直に学べる~
・専属講師が学習を徹底サポート ~「わからない」を徹底解決~
・実務ベースでスキルを習得 ~実践的な凝縮カリキュラム~
このような特徴を持つテックマニアはITエンジニアのスタートラインとして最適です。
話を聞きたい・詳しく知りたいという方はこちらからお気軽にお問い合わせください。