コミット
ゲームで手強いボス戦に挑む直前、失敗してもいつでもやり直せるように残しておく『セーブポイント』のようなものです。
定義 コミットとは、Git(ソースコードのバージョン管理システム)において、作業内容の変更履歴を記録し、その時点の『スナップショット(状態の記録)』として残す操作のことです。いつ、誰が、何を、なぜ変更したかというメモ(コミットメッセージ)とともに保存されるため、後からいつでもその時点の状態に作業を巻き戻すことができます。
いつでも過去に戻れるセーブポイント
大事な文書を作成中にうっかり内容を消してしまったり、パソコンが突然落ちて頭が真っ白になった経験はありませんか? 多くの場合、『最新_最終版.xlsx』『本当に最終_修正.xlsx』『本当の本当に最終版.xlsx』のように、ファイルを何度もコピーして名前を変えて保存しがちです。しかしファイルが何十個も増えていくと、どれがどう変わったのか分からなくなってしまいます。
コミットは、そんな面倒なファイルコピーをすることなく、作業中のファイルの特定の瞬間をタイムマシンの着陸地点のようにカシャッと記録する機能です。ファイル全体の現在の状態をスナップショットとして保存しつつ、何を変更したのかという記録を一緒に残します。
このようにコミットを積み重ねておけば、コードが動かなくなったりエラーが発生したりしても慌てる必要はありません。過去の正常に動いていた特定のコミット時点へきれいに巻き戻せるからです。
写真を撮る前にカメラの前に集まるステップ
コミットを行う際、ファイルを修正した瞬間にそのまま自動保存されるわけではありません。まず、変更した複数のファイルの中から、今回の記録に含めるものをピックアップする『ステージング(準備)』という段階を踏みます。
これは集合写真を撮るときに、全員ではなく『今回写る人だけ』がひな壇に上がるようなものです。ネット通販で欲しい商品を買い物かご(カート)に入れてからまとめて注文する感覚にも似ています。選んだファイルをステージに上げてから、シャッターを切って写真を撮る操作こそがコミットです。
そして写真の裏に日付とメモを書き残すように、コミットするたびに『ログインエラーの修正』といったコミットメッセージ(変更の説明文)を必ず記入します。このメモのおかげで、チームメンバーもコードを1行ずつ確認することなく、どんな変更が行われたのかを一目で把握できるのです。
少し専門的な話:すべてを丸ごとコピーしているわけではない
毎回プロジェクト全体を丸ごとコピーして保存していたら、あっという間にパソコンのストレージが圧迫されてしまいそうですよね。Gitは容量を節約するために、とても賢い仕組みを採用しています。
前回のコミットと比較して実際に変更された部分だけを賢く検出し、変更のないファイルは既存の保存場所を指し示すリンク(参照)として保持します。見た目はプロジェクト全体の完全なスナップショットですが、実際には最小限のデータ量だけで軽量に保存されているのです。
また、コミットには固有の識別番号(ハッシュ値)が割り振られます。これにより、どのコミットも混ざり合うことなく、時系列に沿った精巧な鎖のように安全に連結されて記録されます。
🤔 よくある誤解
コミットをすると、書いたコードがすぐにインターネット上にアップロードされて全員に公開される。
コミットは、まず自分のパソコン(ローカル環境)の中だけに安全に保存される『個人のセーブデータ』です。『プッシュ(Push)』という別のコマンドを実行してリモートリポジトリに送信するまでは、他の人に見られることはありません。
🧺 日常で出会う場面
コミットとは、作業したコードの変更履歴を説明メモとともに安全に残す『デジタルのセーブポイント』です。