変更を記録する
テクノロジ系 / commit — コミット操作の基本
変更を記録する
— add と commit の2ステージ構造 —
このトピックが終わると
git initでリポジトリを作れるgit addとgit commitの違いが説明できるgit diffでコミット前に変更内容を確認できるgit restoreでステージ・変更を取り消せる- 良いコミットメッセージが書ける
git logで履歴を確認できる
章 1 — リポジトリとは何か
リポジトリ = 履歴の入れ物
my-project/ ← ふつうのフォルダ ├── index.html ├── style.css └── .git/ ← Git が作る隠しフォルダ(履歴がここに入る)
.git/ があるフォルダ = リポジトリ。
このフォルダを削除すると履歴が全て消える。
リポジトリを作る
# 新しいフォルダを作ってリポジトリ化 mkdir my-project cd my-project git init
Initialized empty Git repository in .../my-project/.git/
これだけ。既存のフォルダでも git init するだけでよい。
章 2 — 2ステージ構造
なぜ2ステップ必要なのか
「今日の変更を全部記録したくない」 → レビュー中の途中経過は含めたくない → 関係ない修正は別のコミットにしたい
Git は「記録する前に選別できる」設計になっている。
ステージング=記録前の仕分け
graph LR A["🗂 作業ディレクトリ\nlogin.php\nstyle.css\n(変更あり)"] B["📋 ステージ\nlogin.php\n(記録予定)"] C["📦 履歴\ncommit"] A -->|git add login.php| B B -->|git commit| C style A fill:#f0f4ff,stroke:#4a90d9,color:#1a2a4a style B fill:#fff8e1,stroke:#f5a623,color:#1a2a4a style C fill:#e8f5e9,stroke:#4caf50,color:#1a2a4a
add で「これを記録する」と宣言し、
commit で「記録する」。
基本コマンド
# 状態を確認(まず必ずここから) git status # ファイルをステージに追加 git add login.php # 1ファイル指定 git add . # 全ファイル # コミット(記録) git commit -m "feat: ログイン機能を追加"
git status の読み方
$ git status Changes not staged for commit: ← 変更あり・未ステージ modified: login.php Changes to be committed: ← ステージ済み・コミット待ち modified: style.css Untracked files: ← Git が知らない新規ファイル newfile.js
章 3 — コミット前に確認する
git diff:何を変えたか確認する
git diff
- return "Login failed" ← 削除された内容(赤) + return "ログイン失敗" ← 追加された内容(緑)
commit する前に必ず確認する習慣をつける。
git diff の使い分け
# 未ステージの変更を確認(作業ディレクトリ vs ステージ) git diff # ステージ済みの変更を確認(ステージ vs 最新コミット) git diff --staged
作業ディレクトリ ──→ ステージ ──→ 履歴
↑ ↑
git diff git diff --stagedgit restore:変更・ステージを取り消す
ステージを取り消す(git add を元に戻す):
git restore --staged login.php
作業ディレクトリの変更を取り消す(ファイルを最後のコミットに戻す):
git restore login.php
⚠️ git restore login.php は元に戻せない。
作業ディレクトリの変更が消えるので注意。
restore の対象まとめ
作業ディレクトリ ステージ 履歴
(変更したファイル) (記録予定)
login.php login.php
(変更あり) (ステージ済み)
git restore login.php git restore --staged login.php
↑ ↑
変更を取り消す ステージから外す(変更は残る)章 4 — 良いコミットメッセージ
コミットメッセージは「未来の自分への手紙」
❌ 何をしたか分からない
git commit -m "修正" git commit -m "変更しました"
✅ 何を・なぜしたか分かる
git commit -m "feat: ログイン機能を追加" git commit -m "fix: パスワードバリデーションのエラーを修正" git commit -m "docs: README にセットアップ手順を追記"
よく使うプレフィックス
| プレフィックス | 意味 |
|---|---|
feat: | 新機能の追加 |
fix: | バグ修正 |
docs: | ドキュメントの変更 |
style: | コードの整形・見た目 |
refactor: | 動作を変えないコード改善 |
「何をしたか」より「なぜしたか」を書くと、後から読んで分かりやすい。
章 5 — 履歴を確認する
git log で履歴を見る
git log
commit a3f1b2c ← コミットID(ハッシュ)
Author: Your Name <you@example.com>
Date: Fri May 16 10:32:00 2026
feat: ログイン機能を追加
commit 9d8e7f6
...見やすい表示
# 1行で表示 git log --oneline
a3f1b2c feat: ログイン機能を追加 9d8e7f6 fix: タイポを修正 3c2a1b0 docs: README を追加
まとめ
git init リポジトリを作る git status 今の状態を確認(迷ったらここ) git add 記録するファイルをステージに追加 git commit ステージの内容を記録 git log 履歴を確認
→ 次のトピック remote で GitHub に送る