【世界一わかりやすいGit/GitHub入門③】基本ワークフロー

投稿更新日: 2025/12/27

サムネイル
  • まずは、入門②宿題の回答編から

【入門②】宿題

所要時間:5〜10分

  • 1.直下に docs/ を作り、docs/notes.md に1〜3行のメモを作成
  • 2.変更をコミット
  • 3.ログで確認

【入門②】宿題の答え合わせ

  • docs/notes.md が存在
  • ✅ コミットが2件以上(初期コミット+docs追加)
  • ✅ ログに直近コミットが見える

チェック手順(そのまま実行OK)

# 1. ファイルの存在確認
ls docs && cat docs/notes.md

# 2. 直近のコミットを1行表示
git log --oneline -n 5

もし notes.md をまだ作っていなければ:

mkdir -p docs
echo "- 初めての学習メモ" > docs/notes.md
git add docs/notes.md
git commit -m "docs: add initial notes"
git log --oneline -n 5

スナップショット思考で理解する add/commit/log/diff

  • キモは「作業ツリー(いまのファイル) → ステージ(次のスナップショット候補) → コミット(確定したスナップショット)」という三層モデル。
  • git add は“撮る写真に写すものを選ぶ”、git commit は“シャッターを切る”。

Step 1. 変更を作る(題材は既存リポジトリ)

# 例1: README に目的の1行を追記
echo "" >> README.md
echo "This repo is for practicing Git basics." >> README.md

# 例2: docs/notes.md に今日のメモを1行追加
echo "- 今日は add/commit/log/diff を学んだ" >> docs/notes.md

Step 2. 変更の状況を見る(Working Tree を可視化)

git status           # 変更ファイルの一覧
git diff             # まだステージしてない差分を見る

Step 3. ステージに載せる(次のスナップショット候補)

# 粒度をコントロールして載せる
git add README.md
git add docs/notes.md
# または 変更全部をまとめて
# git add -A

差分を見直してから撮る(おすすめ)

git diff --staged

コミット前の最終確認。意図しない変更が混ざっていないかチェック。

Step 4. コミット(シャッターを切る)

git commit -m "docs: update notes and README with learning goals"

メッセージのコツ(簡易版)

  • 目的を命令形で:「Add」「Update」「Fix」など
  • 何を・なぜ(任意で)
  • 慣れてきたら Conventional Commits 風に feat: ... / fix: ... / docs: ...

Step 5. ログでスナップショットを眺める

git log --oneline --graph --decorate -n 10
  • --oneline:短く一覧
  • --graph:ブランチの枝分かれをASCIIで可視化
  • --decorate:ブランチ名やタグを表示

Step 6. 差分をコミット間で比較する(復習に最適)

# 直近2コミットを比較
git diff HEAD~1 HEAD

# ファイル単位で
git diff HEAD~1 HEAD -- README.md

ミニFAQ(つまずきポイント)

  • git add . で不要ファイルまで載った → .gitignore に書いてから git restore --staged <ファイル> でステージから降ろす。
  • コミットに混ぜたくない変更がある → git add -p(対話モード)で差分ハンク単位に選別。
  • メッセージを後から直したい → 直後なら git commit --amend(※公開後の履歴を書き換えるのはNG)。

今日のゴール(できていればOK)

  • git diff / git diff --staged の違いが説明できる
  • 意図した粒度で git addgit commit ができた
  • git log で履歴を1行表示・グラフ表示できた

宿題(次回の答え合わせで使います)

テーマ:変更→コミットを3回繰り返す

所要時間:10〜15分 以下を3セット繰り返してください。1セット=(小さな変更 → 確認 → ステージ → コミット)。

セット例(そのまま使える題材)

セット1:README整備

echo "- 学習項目: add/commit/log/diff" >> README.md
git status
git add README.md
git commit -m "docs: list today's learning items in README"

セット2:学習メモ追加

echo "- コミットの粒度は小さく保つ" >> docs/notes.md
git diff
git add docs/notes.md
git commit -m "docs: append note about small commits"

セット3:サンプルコード(任意言語)

mkdir -p src
echo 'print("hello git")' > src/hello.py
git status
git add src/hello.py
git commit -m "chore: add simple hello script"

確認(3回できたか?)

git log --oneline -n 5
  • 期待値: 直近に3件の新しいコミットが並ぶ

成果物

  • コミットが合計で最低4件以上(初期コミット+前回のdocs追加+今回3件)

次回予告(④へ続く)

  • 第4回はブランチ超入門。
    • git branch / git switch / git merge
    • コンフリクトが起きる“安全な”練習法
    • 「mainを汚さずに並行作業する型」を体得します。

付録:今日のチートシート

# 変更状況の確認
git status
git diff           # 作業ツリー ↔ ステージ
git diff --staged  # ステージ ↔ 次コミット

# ステージング
git add <path>     # 粒度を意識
git add -p         # 差分を対話選択

# コミット
git commit -m "<目的: 何をしたか>"
git commit --amend # 直後の修正(未公開前提)

# 履歴閲覧
git log --oneline --graph --decorate -n 10

# コミット間の差分
git diff HEAD~1 HEAD
git diff <old> <new> -- <file>

この記事をシェアする

合同会社raisexでは一緒に働く仲間を募集中です。

ご興味のある方は以下の採用情報をご確認ください。