【Git実践】コミットは”写真を撮る”こと
*このシリーズはGit学習アプリ(maahh/git-learning-app)の第2章「コミットしてみる」に対応しています。*
—
git commitの仕組みを「写真を撮る」比喩で練習する
git commit(ジットコミット)の仕組みは、GitHubを使い始めた頃の私には正直わかりにくかったです。「コミットして」と言われるたびに「えっ、何を?」と思っていました。
コミット(commit)というのは、変更をリポジトリの履歴に「保存する」操作です。でもそれだけ聞いてもイメージが湧きにくい。
私にとってわかりやすかったのは「写真を撮る」という比喩でした。
カメラで写真を撮ると、その瞬間の風景が記録されます。git commitも同じで、そのタイミングのファイルの状態をまるごと記録します。撮った写真は上書きされません。いつでも見返せるし、昔の状態に戻ることもできます。
—
git addとgit commitの2ステップ
コミットは1コマンドでは完了しません。2段階に分かれています。
# ステップ1:変更をステージング(撮影の準備)
git add ファイル名
# ステップ2:コミットして記録(シャッターを切る)
git commit -m "何を変更したかを書く"
なぜ2段階なのかというと、「どのファイルの変更をまとめて記録するか」を自分で選べるようにするためです。
たとえばファイルを5つ変更したけど、バグ修正と機能追加を別々のコミットにしたい、という場合。`git add` で対象を選んで `git commit` するを繰り返せばいい。
最初は「面倒じゃない?」と思いましたが、履歴を振り返るときにとても助かります。
—
コミットメッセージの書き方
`git commit -m “…”` のダブルクォートの中がコミットメッセージです。
git commit -m "ログイン画面のデザインを修正"
git commit -m "ユーザー登録機能を追加"
git commit -m "READMEのインストール手順を更新"
メッセージのポイントは「何を、なぜ変更したか」がわかること。
「修正」「更新」だけでは後で見返したときに何をしたかわかりません。具体的に書くほど、将来の自分(やチームメンバー)が助かります。
コマンド例では日本語で書いていますが、プロジェクトによっては英語で書くルールのこともあります。Claude Codeに「このプロジェクトに合ったコミットメッセージを書いて」と頼むとうまくやってくれます。
—
コミットの正体:スナップショット
Gitのコミットは「差分(変更点だけ)」を保存するのではなく、そのときのファイル全体のスナップショットを保存しています(※ 内部的にはデータ重複を省く最適化がありますが、概念としてはスナップショット)。
各コミットにはSHA-1というアルゴリズムで生成された40文字のハッシュ値が割り振られます。`git log` で確認すると先頭7文字くらいが表示されます。
git log --oneline
# 例の出力:
# a1b2c3d ログイン画面のデザインを修正
# f4e5d6c ユーザー登録機能を追加
# 9g8h7i6 最初のコミット
この履歴をタイムラインのように辿れるのがGitの強みです。「3つ前の状態に戻りたい」というときも、そのコミットのハッシュを指定すれば戻れます。
—
Claude Codeでやってみた
私は最初、ターミナルでgitコマンドを打つのが怖かったので、Claude Codeに手伝ってもらいながら練習しました。
Claude Codeのチャット欄にこんなプロンプトを貼ると教えてもらえます:
—
プロンプト例(コピーして使えます)
私はGitのコミットを初めて練習しています。
現在のディレクトリにある変更を確認してから、適切なコミットメッセージを提案してください。
作業前に以下を表示してください:
1. git status の出力
2. どのファイルをgit addすべきか
3. 推奨するコミットメッセージ案を3つ
実行する前に、上記の情報を表示して確認を求めてください。
不明な点があれば推測せず、確認事項として列挙してください。
—
このプロンプトを使うと、いきなりコマンドを実行するのではなく「まず確認してから進める」流れになります。Gitの操作は基本的に元に戻せますが、慎重に進めるクセをつけておくと安心です。
—
よくあるミス:コミットメッセージを空にしてしまう
`git commit` とだけ打つと、テキストエディタが開いてメッセージを入力する画面になります。エディタが慣れていないとパニックになることも。
`-m` オプションをつけるのが簡単です:
git commit -m "ここにメッセージを書く"
もしエディタが開いてしまったら、`:q!` で閉じると操作を中断できます(Vimエディタの場合)。
—
アプリで実際に手を動かす
第2章「コミットしてみる」では、ブラウザ上の本物のターミナルでgit add・git commitを実際に操作できます。コマンドの動作を確認しながら習得できるので、読むだけより格段に定着します。
→ Git学習アプリで第2章を試す(無料・インストール不要)
—
まとめ
- `git commit` はそのときのファイル全体の「写真を撮る」操作
- `git add` でステージング → `git commit` で記録という2段階
- コミットメッセージは「何を、なぜ変更したか」を具体的に書く
- 各コミットはSHA-1ハッシュで一意に識別され、後から履歴を辿れる
- わからないときはClaude Codeに「確認してから実行して」と頼むのが安全
コミットを積み重ねるほど、「いつでも戻れる」安心感が増します。最初は1ファイルずつ、小さな変更から試してみてください。
—
*前の記事:【Git実践】git initで”記録ノート”を作る*
*次の記事:【Git実践】diffで”何を変えたか”を自分の目で見る(近日公開)*