Gitを使いこなそう!【リバート編】

Git

こんにちは、ECF Tech
ブログ担当 Michiharu.Tです。

Gitシリーズも記念すべき10回目を迎えました(^ ^)。

今回は「リバート編」です。簡単にいうと、「コミットを取り消す」考え方です

それでは、さっそく行きましょう。

対象読者

  • gitの基本的なコマンドを知っている方( init, add, commit, pushなど)
  • gitをもう少しつっこんで学びたい方

本記事は、Gitシリーズ連載記事の1つとなっています。もし最初からご覧になりたい方は下のリンクをご活用ください。

Git
Gitの事を、学んで試せるページとなっています。初めてGitを利用される方に最適です。ぜひご活用ください。

ハンズオン

それではハンズオン(実際に動作させながら学ぶ)をしながら、どのような動きを見ていきましょう。

まずは適当なフォルダで git initコマンドを実行しましょう。いつものように本記事では C:\work01のフォルダ内で作業を行ないます。

新規ファイルtext01.txtを作成し、次の内容とします。

git addgit commitを行ないます。

引き続きtext01.txtを編集し、プログラムBを追加します。このプログラムは誤ったプログラムと仮定しましょう。

プログラムの誤りに気付かず、下のようにコミットまでしてしまったとしましょう。

このコミットを「無かったことにしたい!」という時に使うコマンドが git revertです(revert:元に戻す、逆戻りなどの意)。

やってみましょう。まずは git logコマンドで誤ったコミットを探します。

右端に (HEAD -> master)がついている最新のコミットが誤りを含むコミットです。このコミットのID( c78d83e7から始まる文字列)をコピーしておきます。

つぎに git revertコマンドを実行します。

するとコミットメッセージを入力するためのエディタが起動します(本記事の環境ではVisual Studio Codeが紐づけられています)。赤囲みの部分がコミットメッセージになります。特に変更せず、そのままエディタを閉じます。

コンソールに色々メッセージが出ていますが、最後にコミットされていることが確認できます。

この状態で再度 git logコマンドを実行して確認します。

ここで注目してほしいのは3つ目のコミットが作成されていることです。

git revertコマンドで行われることはコミットを削除することではなく、指定したコミットを打ち消す新たなコミットを作ることなのです。

実際にnote01.txtのファイルを見てみると

に戻っていることがわかります。

特定コミットの打ち消し

次に特定のコミットを打ち消す例をみてみましょう。フォルダが空の状態から、次のように作業を行ないます。

次の内容のnote01.txtを作成します。

コミットします。

次の内容のnote02.txtを作成します。

コミットします。

次の内容のnote03.txtを作成します。

コミットします。

ログを確認します。

この状態から、プログラム2のコミットをなかったことにするコミットを作成します。

上のコマンドでは、コミットIDを省略して入力しています。7ケタ程度でgitが判別できます。判別できない場合は単にエラーになります。

すると、gitに関連付けられているエディタが開きます。下の図の赤枠部分がコミットコメントとして残る部分になります。必要に応じて修正しますが、今回はそのままエディタを閉じます。

メッセージが色々出るかもしれませんが、最終的には次のようなメッセージでコミットが完了します。

この時点でフォルダ内を確認します。Windows標準の dirコマンドを入力します。

note02.txtだけが削除されているのがわかります。

ここで注目しておきたいのは、プログラム2の後に作成されたプログラム3のコミットはそのまま残っているという事です。revertは、その時点まで戻すという処理ではないのでご注意ください。

プログラム2のコミットだけを打ち消す。のではなく、プログラム2の時点まで戻すような操作をrevertで実現したい場合は、次のように revertコマンドを新しいコミットから順に適用していくことになります。

おわりに

本日はここまでとさせていただきます。最後までご覧くださりありがとうございました。知れば知るほど奥が深いGitの世界ですが、実験する環境を整えるのはいたって簡単です。ぜひ、手を動かしながら学んでいきましょう。


合同会社イー・シー・エフでは、子ども向けプログラミングなどの教育講座を実施しています。プログラミング教室の案内や教育教材の情報、また関連するご相談・問い合わせにつきましては下記よりご確認ください。

https://edu.e3factory.com/
タイトルとURLをコピーしました