CODEX / 20H ACADEMY
單元 06 / 12
UNIT 06 · 120 MINUTES

Git、Worktree 與平行任務

學習目標:在 Codex 開始動手前建立可回復的檢查點;理解同一工作目錄、分支與 Git worktree 的差別;安全地平行處理互不衝突的任務。

術語:Commit、Branch、Worktree交付:隔離工作 + 可審查 diff

120 分鐘安排

10 分Git 狀態巡檢
20 分檢查點策略
20 分工作目錄隔離
40 分平行任務演練
20 分衝突與合併
10 分整理工作區
本單元計時00:00:00
GIT BASELINE

動手前的三個安全檢查

Working tree

先查看未提交修改,辨認哪些是你的工作,不要讓 Codex 覆寫。

Branch

確認目前分支和任務目的;不同功能最好各有清楚的變更集合。

Checkpoint

需要時先 commit、stash 或建立可回復副本。不要假設 agent 能替你保留原始狀態。

Git vocabulary:Branch(分支)是一條提交歷史;Worktree(工作樹)是在不同目錄檢出另一個分支。它們讓檔案工作目錄隔離,但共享同一個 Git repository。
SCENARIO / PARALLEL BUG FIXES

案例:一次處理三個獨立問題

團隊想同時處理:A 修正日期格式、B 更新 README、C 將搜尋元件加鍵盤操作。A 和 C 可能碰同一個元件;B 幾乎不碰程式碼。

先依檔案重疊和相依性拆分,不是每件事都該平行。
安全並行候選

B 文件更新與 A 日期邏輯可能分開。獨立 worktree 能隔離兩邊的檔案和 diff。

先不要並行

A、C 可能改同一元件,且 C 可能依賴日期顯示結果。先排出依賴或定義清楚的接口。

ISOLATION CHOOSER

什麼時候開新的 worktree?

使用情境:單一任務、連續修改同一模組、需要直接承接當前未提交工作。先確認工作目錄乾淨程度,避免不小心混入其他變更。

LAB / 40 MIN

實作:把文件工作與程式工作隔離

  1. 用 Git 檢查 repo 狀態,確認自己沒有未保存的工作。
  2. 開一個 worktree 執行 README 文件更新;在另一個獨立工作區檢查小型程式修改。
  3. 兩個任務都要求 Codex 限定工作範圍,完成後各自檢查 diff 和驗證。
  4. 比較是否有檔案重疊、生成檔案衝突或套件 lockfile 變動。
  5. 選擇合併其中一個變更,再檢查整體狀態;移除已不需要的 worktree。
不要把「平行」誤認為「沒有協調成本」。同一份文件、同一個介面或互相依賴的 API 變更多半需要先協調。

常見事故與恢復思路

看見不認得的修改

先停止。用 Git diff / status 找來源,不要讓另一個任務接著覆寫。

兩份工作改同一檔

比較哪一份含正確行為,逐段合併;再跑兩邊相關測試。

套用變更後測試壞掉

先確認基線和衝突,檢查整合後的行為,不要只看每個分支單獨成功。

忘記 worktree 在哪

用 Git worktree list 查看清單;確認沒有未保存工作後再移除。

判斷:兩個 agent 都要重構同一個共用會員元件,但工作內容不同。首選直接平行修改嗎?