今回は、gitの操作の中でも「コミット(commit)」について初心者向けにまとめたので解説したいと思います。ターミナルを用いて操作していくので、実際に手を動かしながら進めていきましょう。
コミットとは
コミットとは、コードの変更履歴を保存することです。
コードの変更履歴?どういうメリットがあるの?となった方向けに、例を用いて解説していきます。今回は料理に例えて説明していきます。
では、今からお好み焼きの生地を作りましょう。

まずは小麦粉をボウルに入れます。小麦粉をボウルに入れ、撮影台に載せて、写真を撮る。このような手順で材料を加えていきます。

続いて、カットした具材を入れていきます。同じように具材を入れ、撮影台に載せて、撮影という手順を踏みます。

これでお好み焼きの生地が完成したと思いきや、最後に誤ってタバスコを加えてしまいました。

このように謎の手順でお好み焼きの生地を作成しましたが、実はこれがコミットまでの流れになります。具材を入れるということがコードの変更になり、撮影台に載せることがステージングエリア(インデックスともいう)への移動、撮影の処理がコミットとなります。
↓ 実はコミットまではこういう流れ

ではこのように一見すると面倒な手順でコミットを行うのはなぜでしょうか。答えは履歴を戻すことができるというメリットがあるためです。
お好み焼きの例に戻りましょう。最後の手順で、誤ってお好み焼きに関係のないタバスコを加えてしまいましたね。
でも安心してください。下図のように履歴を戻すことで、タバスコを入れる前の状態に戻ることができます。このことをチェックアウトと言います。

チェックアウトとは、作業ディレクトリ内のファイルを指定した時点まで戻すことを言います。
ただしチェックアウトは単なるコミット間の移動です。過去の変更を打ち消したい場合はリバートを行います。
コミットまで操作してみよう
では実際にターミナルを使って、コミットまで行ってみましょう。まずは、CommitAppという名前のアプリケーションを立ち上げます。
↓ ターミナル
$ rails _5.2.3_ new CommitApp -d mysql --skip-bundle
データーベースも作成しましょう。
↓ ターミナル
$ rails db:create
$ rails db:migrate
次にローカルリポジトリを作成します。ローカルリポジトリとは自分のパソコンの中に設置される貯蔵庫のようなものです。この貯蔵庫に過去の状態が記録されていきます。
↓ ターミナル
$ git init
Initialized empty Git repository in /Users/username/Desktop/CommitApp/.git/
続いて、ステージングエリアにあげる作業を行います。お好み焼きでいう以下の作業です。

↓ ターミナル
$ git add .
実際にステージングエリアにコードが移動されたか、以下のコマンドで確認することができます。
↓ ターミナル
$ git status
↓ このようにステージングエリアにコードが反映されていれば成功

ではいよいよコミットを行います。お好み焼きでいうと以下の作業ですね。

↓ ターミナル
$ git commit -m "initial commit"
「-m」をつけることで、末尾にどのようなコミットなのかコメントを記入することができます。今回の場合は初めてのコミットなので「initial commit(最初のコミット)」とコメントを付けました。
コミットメッセージは、「なぜ変更をしたか」を意識して書きましょう。
↓ このように表示されれば成功

以上までがコミットまでの流れになります。
まとめ
- コミットとは、コードの変更履歴を保存すること
- コミットまでの流れは「コード変更」→「ステージングエリアに追加」→「コミット」となる
- このような手順を踏むことで、履歴を戻すことができるというメリットがある
- ローカルリポジトリとは自分のパソコンの中に設置される貯蔵庫のようなもの
- 「-m」をつけることで、末尾にどのようなコミットなのかコメントを記入することができる
参考図書
(2025/05/09 14:17:32時点 楽天市場調べ-詳細)
今回はgitの操作の中でも「コミット(commit)」について焦点を当てて解説しました。最初は慣れないとは思いますが、1つずつ理解して自分でも操作できるように学習していきましょう。