旧ブログ(ISSEN)から移行しました

【GitHub】やりがちなミスの対処法(commit編)

【GitHub】やりがちなミスの対処法(commit編)

寺田拓真
寺田拓真5分で読めます

はじめに

この記事の概要

こんにちは、株式会社TOKOSのたくまです!

Webアプリ作成時にはGitの利用は必須ですが、たまに以下のようなミスをしてしまうことはありませんか?

  • commitメッセージを打ち間違えた!
  • 間違えた内容をcommitしてしまった!

特にプログラミングを学び始めて間もない方は上記のミスをしがちだと思います。
実際に私もよくミスして慌てていました、、

間違えたcommitをしてしまった場合でも、対処法を知っていれば慌てることはありません。
そこで今回は、Gitの操作で初学者の方がやりがちなミスの対処法(commit編)を紹介します!

対象読者

  • Gitを使用してWebアプリを作成している方
  • Gitでcommit操作を間違えて対処法を探している方

基本的なGitでの操作は以下のサイトが参考になります。

【超入門】初心者のためのGitとGitHubの使い方 - RAKUS Developers Blog | ラクス エンジニアブログ

はじめに こんにちは。itoken1013です。 今年もラクスにたくさんの新入社員が入社しました。 日本中の新エンジニアが研修に取り組んでいるであろうこの頃、今回はGitとGitHubの超基本的な使い方をまとめてみたいと思います。 今やエンジニアにとって必須であるGitですが、チーム開発を行うためにはGitHubも使いこなせると、 よりスムーズに開発を進めることができるでしょう。 まずは今回の記事で基本的な使い方を押さえていただければと思います。 弊社ブログのGitに関わる関連記事もぜひご一読ください! ・ 【Git入門】git cloneで既存リポジトリをクローンしよう! ・ 【Git入門】…

tech-blog.rakus.co.jp

Gitでのミスと対処法

commitメッセージを打ち間違えた

commitメッセージを打っている途中でenterを押してしまったり、誤変換したままcommitしてしまった場合に使える対処法です!

git commit --amend

commitメッセージを打ち間違えた場合は上記のコマンドを使用しましょう。
このコマンドを使用すると下の画像のような画面になります。

1番上に表示されているのがcommitメッセージになります。
今回はこれを修正していきましょう。
手順は以下のようになります。

  1. iを押して挿入モードにする
  2. メッセージを修正する
  3. escを押してモードを戻す
  4. :wqで内容を保存する

詳しく説明していきます。
まず、先程の画面はvimになるので、通常と操作方法が異なります。
上記の画面のままでは、メッセージの編集ができないので、キーボードでiを押して挿入モードにする必要があります。
なお、vimの基本的な操作方法は以下のサイトが参考になります。

vimの使い方。最低限の操作ができるようになるまで

CentOSなど Linuxがインストールされているコンピュータには、初めから vi というエディタがついてきてます。それを高機能化したものが vimになっており、vim もインストールされている linuxマシンがほとんどです。なので、v

kekaku.addisteria.com

iを押した際の画面は以下のようになります。

画像の下部のように-- INSERT --と表示されていれば挿入モードになっています。
これでメッセージの編集が可能です。
メッセージを修正したらキーボードでescを押して、モードを戻しましょう。
その後、:wqで内容を保存してvimを終了します。
修正後は内容が反映されていることをgit logコマンドで確認しましょう。

commit内容を間違えた

commit内容を間違えた場合は以下の2つの方法で対処することが可能です。

  • git reset --soft HEAD^
  • git revert <commitのID>

まず1つ目がgit reset --soft HEAD^です。
こちらは直前のcommitを取り消すことが可能です。

先程の例で使用してみます。
まず、git reset --soft HEAD^を使用する前のlogがこちらです。

ここからgit reset --soft HEAD^を使用すると以下のように一番上のcommitが取り消されます。

これで、間違えた内容のcommitを取り消すことが出来ました。

もう1つの方法がgit revertの使用です。
こちらは特定のcommitを打ち消すことが可能です。

打ち消すというイメージを具体的に説明します。
例えば以下のようにA〜Cまでのcommit履歴があるとして、Bの内容を打ち消したいとします。

commitの打ち消しイメージ
A--B--C

その場合は、git revert Bと打ちます。
そうすることで、commit履歴は以下のようになります。

revert後のcommit履歴
A--B--C--B'

上記のB'というのは、Bの内容を削除する内容のcommitになります。
このようにすることで、実質Bの内容を取り消すことが出来ます。

実際の例で使用してみます。
commitには画像のようにそれぞれIDが割り振られています。

git revertを使用する際は、このIDを指定することで特定のcommitを打ち消すことが出来ます。
ターミナルでgit revertを使用するとvimが立ち上がります。

一番上のメッセージがgit revert後に作成したcommitに付与されるcommitメッセージです。
必要に応じて編集してください。
編集後は先程と同様に内容を保存しましょう。
保存後、logを確認すると以下のようになります。

間違ったcommitは残されたまま、その内容を打ち消すcommitが作成されていることが分かります。
これで一連の流れは完了です。

紹介した2つの方法の使い分けですが、直前の内容を取り消すだけであればgit reset --soft HEAD^の方が必要な操作も少なくて分かりやすいかと思います。

さいごに

今回はGitでやりがちなミスの対処法(commit編)を紹介しました!
ミスしてしまった際は焦りますが、修正方法は意外と簡単ですぐに対応できるかと思います。
今後はpush編なども紹介できればと思っていますので、ご期待ください!

この記事を書いた人

寺田拓真
寺田拓真

TOKOSのコーダー。このブログではコーディングに関する投稿をしています。トロたくが好きです。