🌿 第2章:ブランチ (Branch) のパラレルワールド
RPGゲームをプレイする時、最終ボスに挑む前に必ず「セーブ」しますよね? もし負けても、セーブデータからやり直せばいいので、アカウント全体を失うことはありません。
商業プロジェクトの開発でも同じです。完璧に動作するウェブサイト(メインストーリー、通常はmainまたはmasterブランチと呼びます)があるとします。そこに上司から「ショッピングカート」機能の追加を命じられました。
もし完璧なファイルを直接いじって、途中で寝てしまい、翌日サイトが壊れていることに気づいたら、上司は確実に激怒するでしょう。
この問題を解決するために、Gitは**ブランチ (Branch)**という概念を発明しました。 これは「パラレルワールド」を作成し、メインストーリーに影響を与えずに、そこで自由に実験や破壊を行えるようにするものです。
このレッスンでは、Vibe Codingの考え方を使って、AIに複雑なブランチ操作をすべて任せる方法を教えます!
🌌 ブランチとは?パラレルワールドの作り方
ブランチ作成コマンドを入力すると、Gitは現在のプロジェクト状態を100%複製して新しい世界を作ります。
この新しい世界(新しいブランチ)で行うすべてのセーブ(Commit)は、元のmainブランチに一切影響を与えません。
💡 Vibe Prompt 実践 1:AIに新しいブランチの作り方を学ぶ
多くの人がGitコマンドの使い方や間違えた時の対処法を知りません。心配無用です、状況をAIに伝えましょう!
[!IMPORTANT] 以下のプロンプトをコピーしてAIに送信してください:
私は現在Gitのmainブランチにいて、プロジェクトは正常に動作しています���上司から新しい「会員ログイン」機能の開発を命じられました。"feature/user-login"という名前の新しいブランチを作成し、すぐに切り替えるための完全なターミナルコマンドを教えてください。また、このコマンドの意味を解説してください。
🤖 AIが生成した実際の返答とコマンド:
# 最新で推奨される方法:git switchを使用
git switch -c feature/user-login
# (または古いバージョンの方法、効果は同じ)
git checkout -b feature/user-login
🔍 AIの深い解説:
switch:「切り替える」という意味。-c(または-b):create(作成)を表す。feature/user-login:ブランチの名前。新しい機能であることを示すため、feature/を前に付けるのが慣例。- このコマンドの完全な意味は:「feature/user-loginという名前のパラレルワールドを作成し、すぐにそこに移動してください!」
これで、あなたはパラレルワールドにいます。index.htmlを大胆に変更できます!
🔀 ブランチ間の切り替え:異なる世界を行き来する
feature/user-loginで開発中、上司が突然「サイトのロゴのスペルが間違っている!すぐ修正して!」と言ってきたらどうしますか?
ログイン機能はまだ開発途中で、コードが不完全な状態ではアップロードできません。
慌てないで!「mainのパラレルワールドに戻り」、新しい緊急修正用の世界を作成し、修正後にログイン機能の開発に戻ればいいのです。
💡 Vibe Prompt 実践 2:緊急ブランチ切り替えのSOP
[!IMPORTANT] 以下のプロンプトをコピーしてAIに送信してください:
現在"feature/user-login"ブランチで開発中で、ファイルを変更したがまだ完了していません。今すぐ"main"ブランチに戻ってバグを修正する必要があります。以下のGit操作の標準手順を教えてください:1. 途中まで書いたファイルをどう保存(ステージングまたはコミット)するか?2. mainブランチにどう切り替えるか?3. mainから"hotfix/logo-typo"という緊急ブランチをどう作成するか?コマンドと詳細な日本語の手順解説を提供してください。
🤖 AIが生成した実際の返答とコマンド:
# 手順 1:途中までの変更を現在の世界に「セーブ」する
git add .
git commit -m "chore: ログイン機能開発中 (一時保存)"
# 手順 2:安全にクリーンなmainの世界に戻る
git switch main
# 手順 3:mainから緊急修正用の世界を分岐させる
git switch -c hotfix/logo-typo
🔍 深い解説:
これが上級エンジニアが日常的に行っていることです。AIに「状況」と「問題」を正確に伝えれば、AIは完璧な標準作業手順(SOP)を提供してくれます。git stashなどの複雑なコマンドを暗記する必要はなく、最もシンプルなcommitが最良の一時保存方法です。
🗑️ 不要なパラレルワールドの削除
緊急修正が完了したり、新しい機能が上司に却下された場合、これらの「不要なパラレルワールド」を削除する必要があります。さもないと、リストがどんどん長くなってしまいます。
💡 Vibe Prompt 実践 3:安全なブランチ削除
[!IMPORTANT] 以下のプロンプトをコピーしてAIに送信してください:
以前"feature/old-design"ブランチを作成しましたが、このデザインは廃止されました。Gitでこのローカルブランチを削除する方法を教えてください。もし現在このブランチにいる場合、削除する前に何をすべきですか?完全なコマンドを提供してください。
🤖 AIが生成した実際の返答とコマンド:
# ⚠️ 注意:自分が座っている枝を切ることはできません
# まず最初に、削除するブランチから移動し、main(または他のブランチ)に切り替える必要があります
git switch main
# 第二に、-d(delete)コマンドでブランチを削除します
git branch -d feature/old-design
# 【AIからの追加注意】:
# もしこのブランチに「まだマージされていない変更」がある場合、Gitは保護のために警告を出し削除を阻止します。
# これらの変更が完全に不要だと確信している場合、小文字の-dを大文字の-D(強制削除)に置き換えます:
# git branch -D feature/old-design
👀 世界に迷った?すべてのブランチを確認する方法
プロジェクトの開発が長引くと、自分がどのブランチを作成したか、さらには現在「どの世界にいるか」さえ忘れてしまうことがあります。
💡 Vibe Prompt 実践 4:現在の状態を確認する
[!IMPORTANT] 以下のプロンプトをコピーしてAIに送信してください:
現在どのGitブランチにいるのか、また他にどのブランチがあるのか分からなくなりました。以下のことを行うコマンドを教えてください:1. ローカルにあるすべてのブランチをリスト表示し、現在いるブランチをマークする。2. リモートサーバー(GitHubなど)を含むすべてのブランチをリスト表示する。
🤖 AIが生成した実際の返答とコマンド:
# 1. ローカルのすべてのブランチをリスト表示
git branch
# 実行後、ターミナルには次のように表示されます:
# feature/user-login
# * main <-- アスタリスク(*)が付いているのが現在地!
# hotfix/logo-typo
# 2. ローカル + リモート(GitHub)のすべてのブランチをリスト表示
git branch -a
🛑 究極のトラブル回避ガイド:間違ったブランチで開発してしまった場合
これはすべての初心者が必ず遭遇する問題で、Vibe Coding時にも見落としがちです。
feature/user-loginで開発するつもりが、切り替えを忘れてmainでコードを書き、10個ものファイルを変更してしまった!
気づいた時にはもう手遅れです。どうすればいいでしょうか?
手動でファイルを削除して書き直すのは絶対にやめてください!AIがあなたを救います!
💡 Vibe Prompt 実践 5:時空救出作戦!変更を新しい世界に移動する
[!IMPORTANT] 以下のプロンプトをコピーしてAIに送信してください:
助けて!重大なミスを犯しました。"feature/cart"ブランチを作成してショッピングカートを開発するはずでした。しかし切り替えを忘れ、直接"main"ブランチで5つのファイルを変更してしまいました!まだgit commitを実行しておらず、ファイルはすべて未ステージング(Modified)状態です。これらの変更を「持ち運び」、新しい"feature/cart"ブランチに移動させ、mainブランチをクリーンに保つ方法はありますか?詳細なコマンドと原理説明を教えてください。
🤖 AIが生成した驚異の救出コマンド:
# 🎉 AIからの朗報:git commitを実行していなければ、すべて挽回可能です!
# Gitでは、未コミットの変更(Modified files)は「作業領域」に属しており、特定のブランチに紐づいていません。
# つまり「これらの変更を持ったまま、新しい世界に移動する」だけでいいのです!
# 手順 1:直接新しいブランチを作成し切り替える
# この時、5つのファイルの変更は自動的に新しいブランチに引き継がれます!
git switch -c feature/cart
# 手順 2:状態を確認すると、変更がすべてここにあることがわかります!
git status
# 手順 3:新しいブランチで安全にセーブできます
git add .
git commit -m "feat: ショッピングカート機能追加"
🔍 深い解説:
この「変更を保持したまま移動」はGitの最も親切で直感的でない設計の一つです。多くの人が変更した時点で手遅れだと思い込みますが、AIに聞いてみると、たった一行のgit switch -cで危機を脱せることがわかります!AI時代において、**「災害現場を正確に描写する」**能力は、どんな救出コマンドを暗記するよりも重要です!
✅ 本章のまとめとデバッグの極意
この章では、Git開発の核心である「パラレルワールド」概念を学びました:
- ブランチの作成と切り替え (
git switch -c):新機能開発には常に新しいブランチを作成し、mainを汚さない。 - ブランチの切り替え (
git switch):異なる世界間を自由に行き来する。 - ブランチの削除 (
git branch -d):タスク完了後、余分な世界を消去する。 - 災害復旧 (変更を保持した移動):commit前なら、変更を持って新しいブランチに移動可能。
これで、あなたは多数のパラレルワールドを持ち、それぞれの世界で機能を完成させました。
しかし最終的には、これらのパラレルワールドをメインストーリー (main) に「融合」させる必要があります。
この融合プロセスを Merge (マージ) と呼びます。
そしてマージの過程で、最も恐ろしい大ボスが現れます:「Gitコンフリクト (Merge Conflict)!」 あなたと同僚が同じコード行を変更した場合、Gitはどちらを採用すべきかわからず混乱します。 次章では、AIの力を借りてこの血みどろの争いをエレガントに解決する方法を教えます!