【完全理解】Gitとは?②コミットを理解する
☁️はじめに
前回の記事では、Gitを理解するための土台となる 「バージョン管理」 について学びました。
更新ごとに変化するファイルの状態を「バージョン」といい、同じファイルの複数バージョンを保持することを 「バージョン管理」と呼びました。
そしてGitは、この 「バージョン管理」を効率よく行うためのツールであり、
ファイルの変更をバージョンとして記録し、過去の状態へいつでも戻れる仕組みを持っています。
今回は、Gitでなぜ過去のバージョンに戻れるか?という仕組みと、
「バージョン」そのものを指す 「コミット」の概念について詳しく見ていきます。
前回の記事:
🧱 コミットとは?
Gitでは、管理対象のファイルのその時点の状態を履歴として保存していきます。
ユーザーが任意のタイミングで「この状態を記録しておこう」と明示的に保存する操作を「コミット」 と呼びます。
そして、その記録そのもののことも 「コミット」 と呼びます。
🧭 コミットの単位とタイミングは自由に決定できる
コミットは自動では行われません。
ユーザーが「ここまでを記録」と判断したタイミングで明示的に実行します。
コミットの粒度(どこで区切るか)は、プロジェクトの性質や、後で履歴を見返す目的に応じて決めます。
例:プログラムのソースコード
① 初期バージョンを作成
↓ コミット
② 機能Aを追加
↓ コミット
③ 機能Bを追加
↓ コミット
④ バグ修正(機能A)
↓ コミット
もし、機能AとBを同じコミットにまとめてしまうと、
後から「機能Aだけの状態」に戻したくても難しくなります。
✅ コミットをきれいに分割することで、履歴がわかりやすくなり、
チーム開発でも他の人が変更を追いやすくなります。
🧩 コミットを指定するための「コミットハッシュ」
過去のコミットを行き来できることがGitの特徴のひとつです。
その際に、「どの」コミットの時点に戻りたいかを指定しているわけですが、このときGitが内部で使っているのが、「コミットハッシュ」や「ハッシュ値」 と呼ばれる識別用の文字列です。
これは、コミットするときにSHA-1ハッシュ関数と呼ばれる計算式によって自動的に生成されます。
一つひとつのコミットには異なる値が割り当てられるため、このハッシュ値を指定すればそGitはそのコミットを正確に特定できます。これがGitが過去のバージョンに戻れる仕組みになります。
コミットハッシュの例:
e3e43c66deb54e58237d718a04d688975bf1d4c2
まとめ
今回は、Gitの基本操作である コミット について解説しました。
- コミットとは、ファイルの変更を記録すること
- コミットは自動ではなく、ユーザーが任意のタイミングで実行する
- コミットには一意の「コミットハッシュ」が付与され、履歴を正確に特定できる
次回の記事では、コミットした履歴がどこに保存されるのか(リポジトリの役割)について解説します。
Discussion