🌿 第二章:分支 (Branch) 的平行宇宙

想像你在玩一款 RPG 遊戲,你在打最終 Boss 之前,一定會先「存個檔」。 如果打輸了,大不了讀檔重來,你不會因此失去整個帳號。

在開發商業專案時也是一樣。你已經有了一個完美運作的網站 (主線劇情,我們通常叫它 mainmaster 分支)。現在老闆要求你加一個「購物車」功能。 如果你直接在完美運作的檔案上亂改,改到一半去睡覺,隔天發現網站掛了,老闆絕對會抓狂。

為了解決這個問題,Git 發明了 分支 (Branch) 的概念。 它允許你在不影響主線劇情的情況下,創造一個「平行宇宙」,讓你在裡面盡情搞破壞、做實驗。

這堂課,我們將教你如何用 Vibe Coding 的思維,指揮 AI 幫你處理所有複雜的分支操作!


🌌 什麼是分支?如何創造平行宇宙?

當你輸入建立分支的指令時,Git 會把你目前的專案狀態 100% 複製一份到新的宇宙中。 你在這個新宇宙 (新分支) 做的任何存檔 (Commit),都絕對不會影響到原來的 main 分支。

💡 Vibe Prompt 實戰 1:讓 AI 教你怎麼開新分支

很多人不知道怎麼下 Git 指令,或是怕下錯指令。別擔心,把情境告訴 AI!

[!IMPORTANT] 請複製以下 Prompt 傳送給 AI:

我現在在 Git 的 main 分支上,專案目前運作正常。 老闆要我開發一個新的「會員登入」功能。 請給我完整的終端機 (Terminal) 指令,教我如何建立一個名為 "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 開發到一半,老闆突然跑過來說:「網站首頁的 Logo 拼錯了!立刻修復!」 這時候你該怎麼辦?你的登入功能才寫一半,程式碼還是爛的,絕對不能直接上傳。

別慌!你只需要「切換回 main 平行宇宙」,開一個新的緊急修復宇宙,修好後再切換回登入功能繼續開發即可。

💡 Vibe Prompt 實戰 2:緊急切換分支的 SOP

[!IMPORTANT] 請複製以下 Prompt 傳送給 AI:

我目前在 "feature/user-login" 分支開發到一半,檔案有修改但還沒寫完。 現在我要緊急切換回 "main" 分支去修 Bug。 請給我一套標準的 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] 請複製以下 Prompt 傳送給 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] 請複製以下 Prompt 傳送給 AI:

我現在搞不清楚自己在哪個 Git 分支了,也忘記我還有哪些分支。 請給我指令來: 1. 列出我電腦裡 (Local) 所有的分支,並標示我現在在哪一個。 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] 請複製以下 Prompt 傳送給 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 開發中最核心的「平行宇宙」概念:

  1. 建立並切換分支 (git switch -c):開發新功能永遠要開新分支,不要弄髒 main
  2. 切換分支 (git switch):在不同的宇宙之間自由穿梭。
  3. 刪除分支 (git branch -d):任務完成後,把多餘的宇宙銷毀。
  4. 災難救援 (帶皮穿越):只要還沒 commit,都可以把修改帶著跑到新分支。

現在,你已經有了一堆平行宇宙,並且在各自的宇宙裡完成了功能。 但最終,我們必須把這些平行宇宙「融合」回主線劇情 (main)。 這個融合的過程叫做 Merge (合併)

而合併的過程中,最可怕的大魔王即將登場:「Git 衝突 (Merge Conflict)!」 當你跟同事剛好改到了同一行程式碼,Git 會崩潰不知道該聽誰的。 下一章,我們將教你如何優雅地讓 AI 幫你解決這場腥風血雨!