【世界一わかりやすい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-badges
Step 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 # 自動生成のマージメッセージでOK
4-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-tips
2.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-tips
5.ログ確認:
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では一緒に働く仲間を募集中です。
ご興味のある方は以下の採用情報をご確認ください。