【世界一わかりやすいGit/GitHub入門④】ブランチ超入門
投稿更新日: 2026/1/4

- まずは、入門③宿題の回答編から
【入門③】宿題
- 変更→コミットを3回繰り返す(README、notes.md、サンプルコードなど)
【入門③】宿題の答え合わせ
# 直近コミットの確認
git log --oneline -n 5- ✅ 直近に3件の新規コミットが並ぶ
- ✅ 合計コミット数が最低4件以上(初期コミット+docs追加+今回3件)
まだ足りない場合の最短修正例
echo "- 追記: ログ確認OK" >> docs/notes.md
git add docs/notes.md
git commit -m "docs: add quick note for homework completion"
git log --oneline -n 5
ブランチ超入門(mainを汚さない開発の型)
- 合言葉は「mainは常に動く状態に」。
新しい作業はトピックブランチ**(例:
feature/...、fix/...)で行い、終わったらmainへマージします。
三行でわかるブランチ
- branch: 履歴上の“作業の分岐点”。
- switch: 作業するブランチを切り替える。
- merge: 分岐した変更を元に戻す(統合する)。
Step 1. トピックブランチを切る
# mainにいることを確認
git switch main
git pull --ff-only # ※後でGitHubと連携した時に役立つ習慣
# ブランチを作りつつ切り替え
git switch -c feature/readme-badgesいまどこにいる?(確認)
git branch # * が付いているのが現在のブランチStep 2. 変更してコミット(ブランチ上で作業)
# 例:READMEにバッジ用の見出しを追記
echo "" >> README.md
echo "## Badges (coming soon)" >> README.md
git add README.md
git commit -m "docs: add badges section to README"mainへマージ(統合)
git switch main
git merge --no-ff feature/readme-badges -m "merge: badges section from feature/readme-badges"fast-forward(FF):分岐がないときに“早送り”で統合。履歴が直線。--no-ff:FF可能でもマージコミットを作る。ブランチでの作業単位が履歴に残り、後から追いやすい。
後片付け(使い終わったブランチは削除)
git branch -d feature/readme-badgesStep 4. コンフリクト解消を安全に体験する
同じ行をmainとfeatureで別々に編集すると、マージ時に コンフリクト(衝突) が起きます。ここでは安全な“練習用”手順で体験します。
4-1. 準備:練習用の分岐を作成
# mainでREADMEの同じ行を編集
git switch main
echo "Line to conflict (main)" >> README.md
git add README.md
git commit -m "docs: add line on main for conflict demo"
# ブランチ作成&切替
git switch -c feature/conflict-demo
4-2. ブランチ側でも同じ行を編集
# ※ 同じ箇所を違う内容にする
sed -i '' 's/Line to conflict (main)/Line to conflict (feature)/' README.md 2>/dev/null || \
perl -0777 -pe 's/Line to conflict \(main\)/Line to conflict (feature)/' -i README.md
git add README.md
git commit -m "docs: change the same line differently on feature"4-3. マージして衝突させる
git switch main
git merge feature/conflict-demo
# => コンフリクト発生のメッセージ4-4. マーカーを手で解消する
<<<<<<< HEAD
Line to conflict (main)
=======
Line to conflict (feature)
>>>>>>> feature/conflict-demo- どちらかを採用、もしくは両方を編集して新しい行にまとめる
- マーカー行(<<<<<<< / ======= / >>>>>>>)は必ず削除
編集後:
Line to conflict (resolved)4-5. 解消済みとして確定
git add README.md
git commit # 自動生成のマージメッセージでOK4-6. 後片付け
git branch -d feature/conflict-demoミニFAQ(つまずきポイント)
merge: unrelated historiesと言われる → 別リポジトリの履歴を混ぜた可能性。学習中は無理に統合しない。- コンフリクトが多すぎて怖い
→ 一度
git merge --abortで元に戻す→ 小さく分けて再挑戦。 - 履歴がわかりにくい → 小さなトピックブランチ+--no-ffで“作業の塊”を明示。git log --oneline --graphが効く。
今日のゴール(できていればOK)
git branch / switch / mergeの基本操作を説明できる- トピックブランチで作業→mainに安全に統合できた
- 簡単なコンフリクト解消を体験した
宿題(次回の答え合わせで使います)
テーマ:トピックブランチを作ってマージ
所要時間:10〜15分
1.main からブランチを作成:
git switch main
git switch -c feature/add-tips2.docs/notes.md に学習メモを2〜3行追加してコミット:
echo "- ブランチは作業の分岐点。mainは常に綺麗に" >> docs/notes.md
echo "- マージ前に diff で最終確認" >> docs/notes.md
git add docs/notes.md
git commit -m "docs: add branching tips"3.main に戻ってマージ(履歴をわかりやすくするため --no-ff 推奨):
git switch main
git merge --no-ff feature/add-tips -m "merge: add branching tips"4.後片付け:
git branch -d feature/add-tips5.ログ確認:
git log --oneline --graph -n 5成果物
- コミットが合計で最低4件以上(初期コミット+前回のdocs追加+今回3件)
次回予告(⑤へ続く)
- 第5回はリモートとGitHub(push / pullの正体)。
- GitHub上にリポジトリを作る
origin登録→git push -u origin main- Pull → 変更 → Pushの往復を体験します。
付録:今日のチートシート
# ブランチ
git branch # 一覧
git switch <name> # 切替
git switch -c <name> # 作成して切替
git branch -d <name> # 削除
# マージ
git merge <branch> # 統合(FFの場合は早送り)
git merge --no-ff <br> # マージコミットを作る
# コンフリクト
git status # どのファイルが衝突か
# ファイルを編集してマーカー削除 → 解消
git add <resolved-file>
git commit # マージ確定
# 履歴視覚化
git log --oneline --graph --decorate -n 10この記事をシェアする
合同会社raisexでは一緒に働く仲間を募集中です。
ご興味のある方は以下の採用情報をご確認ください。