生活分享
平行工作後的整合與驗收
依檔案與介面契約整合獨立修改,處理衝突,再驗證合併後的整體行為。
閱讀時間約 20 分鐘 · 操作 30 分鐘

返回 Codex 教學總目錄Codex 學習中心:完整教學目錄從安裝、第一個任務到 MD 規則與進階整合,規劃 60 篇 Codex 教學、十個單元。依程度、平台、需求或指令搜尋下一篇;尚未公開的教學會標示狀態,方便安排學習路線。閱讀全文
目標與準備
本段提到的教學與資源: WorktreeWorktree 與多任務隔離Worktree 讓同一個 Git 程式庫有不同的工作目錄,各自承接不同分支。它適合讓兩項工作分開改檔,但資料庫、連接埠與外部服務仍可能共用,不能把檔案隔離當成所有資源隔離。閱讀全文 · 證據驗收子代理分工與品質檢查定義獨立輸入、修改範圍與交付證據,審查子代理結果並處理缺項。閱讀全文
平行工作節省的是可以獨立完成的時間,最後的整合仍有順序。兩個工作者都說完成,可能只是各自的分支完成;同一頁同時用到兩個變更時,還要在相同版本與環境重跑驗收。這篇用標題與頁尾兩個文字檔代表兩份交付,不把簡單文字測試宣稱成整個網站測試。學會流程後,再套用到你專案真正的建置與瀏覽器檢查。
步驟 1:建立共同驗收材料
在自己練習區用檔案管理員建立全新 integration-lab,再於此目錄開啟終端機。Windows、macOS、Linux 的下列 Git/Node 命令相同;先核對路徑,並確認旁邊沒有本篇要用的 integration-heading、integration-footer、integration-review、integration-conflict 同名資料夾。若名稱已存在就另選一組名稱,所有後續步驟一致替換,不覆蓋原工作。
git init -b main
git config user.name "Codex Learner"
git config user.email "learner@example.test"
用編輯器建立下列三個完整檔案。heading.txt 初始為 Title: Small Steps,footer.txt 初始為 Footer: Local exercise,各自保留最後換行。測試描述的是兩項尚未完成的新要求,所以基準執行刻意是零通過、兩失敗;這是沒有遠端的獨立教材,不是在正式 main 上留下未說明的失敗。
Title: Small Steps
Footer: Local exercise
import test from 'node:test';
import assert from 'node:assert/strict';
import { readFileSync } from 'node:fs';
const read = name => readFileSync(new URL(name, import.meta.url), 'utf8').trim();
test('heading includes the practice label', () => {
assert.equal(read('heading.txt'), 'Title: Small Steps Lab');
});
test('footer identifies practice-only material', () => {
assert.equal(read('footer.txt'), 'Footer: Practice only');
});
node --test integration.test.mjs
git add -- heading.txt footer.txt integration.test.mjs
git commit -m "Add integration exercise and acceptance cases"
git status --short
步驟 2:分配兩份互不覆寫的交付
git worktree add -b codex/heading ../integration-heading main
git worktree add -b codex/footer ../integration-footer main
git worktree add -b codex/integration ../integration-review main
git worktree list
A 只能改 integration-heading/heading.txt 為 Title: Small Steps Lab;B 只能改 integration-footer/footer.txt 為 Footer: Practice only。你可以手動完成這兩個明確編輯,或在支援子代理的 Codex 主任務中明確委派兩位工作者,分別提供完整路徑、分支、唯一可寫檔案與回報格式。本篇參考驗證使用手動等價編輯,不冒充已啟動兩個模型。
Use two subagents with separate checkouts. Do not create more agents.
Agent A owns only <ABSOLUTE_HEADING_CHECKOUT>/heading.txt on codex/heading.
Set that file to 'Title: Small Steps Lab' with a final newline.
Agent B owns only <ABSOLUTE_FOOTER_CHECKOUT>/footer.txt on codex/footer.
Set that file to 'Footer: Practice only' with a final newline.
Neither agent may edit tests, merge, push, deploy or touch the other checkout.
Return the actual file diff and blockers. Leave staging and integration to the parent.
Wait for both agents before reviewing their results.
| 工作 | 可寫入檔案 | 此時測試預期 |
|---|---|---|
| A 標題 | heading.txt | 標題通過、頁尾尚未通過 |
| B 頁尾 | footer.txt | 頁尾通過、標題尚未通過 |
| 整合者 | 確認後的組合分支 | 合併兩份後兩項通過 |
任何人若改了 integration.test.mjs,先查看原因與差異,不讓工作者把驗收目標改低。
git -C ../integration-heading diff -- heading.txt
git -C ../integration-footer diff -- footer.txt
node --test ../integration-heading/integration.test.mjs
node --test ../integration-footer/integration.test.mjs
步驟 3:保存後依序整合
等兩份交付都停止修改後,查看完整 status,確認只改指定檔案,再用下列命令提交。若已有其他人或工作者提交,先核對提交與 diff,不再重複提交。記錄兩條分支的 SHA,讓整合對象具體;正式協作時若分支仍在變動,應使用已核對的提交或請持有人先停止寫入,不在不斷變更的目標上驗收。
git -C ../integration-heading add -- heading.txt
git -C ../integration-heading commit -m "Label the practice heading"
git -C ../integration-footer add -- footer.txt
git -C ../integration-footer commit -m "Label the practice footer"
git rev-parse codex/heading codex/footer
git -C ../integration-review status --short
git -C ../integration-review merge --no-ff codex/heading -m "Integrate practice heading"
git -C ../integration-review merge --no-ff codex/footer -m "Integrate practice footer"
node --test ../integration-review/integration.test.mjs
git -C ../integration-review diff main...HEAD -- heading.txt footer.txt
預期整合目錄兩項通過,diff 同時包含標題與頁尾的新值,而原 integration-lab 的 main 仍是初始文字。若第一個 merge 已衝突,先停止,不執行第二個;不能用某條分支自己的綠燈代替組合驗收。這裡的 --no-ff 用於讓教材清楚保留兩次整合紀錄,真實儲存庫的合併策略仍依其規則決定。
git -C ../integration-review rev-parse HEAD
將這個完整 SHA 和兩項通過結果放在同一筆紀錄。完成下一步衝突與 abort 後,從原目錄再執行同一命令,結果必須與此刻相同,並且 status 乾淨、兩項仍通過;三者一起核對才能確認回到原狀。不要把標題分支或 main 的 SHA 誤填為整合 SHA。
步驟 4:刻意製造衝突並中止
git worktree add -b codex/conflict ../integration-conflict main
在 integration-conflict/heading.txt 把初始文字改成 Title: Another direction,保存並只提交該檔。它從舊 main 起步,也改同一行,因此與整合分支的標題方向相衝突。先確認 integration-review 的 status 沒有未提交修改、兩項測試都通過,再嘗試合入衝突分支。這個前提讓 --abort 可以回到開始合併前的清楚狀態,不拿含未保存工作內容的目錄做演練。
git -C ../integration-conflict add -- heading.txt
git -C ../integration-conflict commit -m "Create a conflicting practice heading"
git -C ../integration-review merge --no-ff codex/conflict -m "Attempt conflicting integration"
git -C ../integration-review status --short
查看衝突檔會看到兩種標題與 Git 標記。這次不選任一方,而是保存錯誤和 status,執行 merge --abort。中止後再跑測試,預期恢復先前兩項通過、status 乾淨。若工作目錄在合併前本來就有修改,abort 不保證能重建所有未提交狀態;因此不要省略前一步的檢查。真正要解衝突時逐段決定保留行為,再重跑測試,不能一律取 ours 或 theirs。
git -C ../integration-review merge --abort
node --test ../integration-review/integration.test.mjs
git -C ../integration-review status --short
收尾、常見問題與交付
測試找不到文字檔時,確認三個檔案都在同一份 checkout;此測試依自己的檔案 URL 讀資料,因此從原目錄執行也不會誤讀另一份文字。status 顯示未知修改時先問清來源;分支不存在時回看 worktree 建立與提交紀錄;合併成功但驗收失敗時查組合 diff,不讓工作者擅自改驗收條件。不要把需要先產出共同介面的工作硬拆成彼此不知道規格的兩個寫入任務。
完成後停止練習工作者並關閉副本視窗,從原 integration-lab 核對 worktree list 的完整路徑與四份副本的 clean status。只有本篇新增、成果已提交且未在使用的副本才依序移除;任何拒絕都先檢查,不加 force。以下保留原庫及 codex/integration 分支,所以之後仍能用 git show 查到組合成果。沒有合併到正式 main,也沒有開 PR。
git worktree list
git worktree remove ../integration-heading
git worktree remove ../integration-footer
git worktree remove ../integration-review
git worktree remove ../integration-conflict
git show codex/integration:heading.txt
git show codex/integration:footer.txt
交付紀錄包含兩個輸入 SHA、合併順序、整合 SHA、兩項測試結果、一次衝突與 abort 後的結果,以及保留原 main 的確認。參考 Git/Node 檢查不等於 Codex 模型真的分工,也不等於網站已完成整頁驗收;未操作平台依官方文件查證。接續瀏覽器與圖片瀏覽器、截圖與圖片協作畫面需求需要把參考、實際結果與修改條件放在一起。瀏覽器可以找資料與檢視網站,截圖能傳達當下畫面,生成圖適合概念參考;三者提供的證據不同,不能用生成的介面當成操作成功。閱讀全文,將程式與畫面驗證補齊後,才準備你的正式專案交付。
返回 Codex 教學總目錄Codex 學習中心:完整教學目錄從安裝、第一個任務到 MD 規則與進階整合,規劃 60 篇 Codex 教學、十個單元。依程度、平台、需求或指令搜尋下一篇;尚未公開的教學會標示狀態,方便安排學習路線。閱讀全文
閱讀完整文字說明
Three numbered stages: identify the starting point, perform the exercise, and verify the result. Original illustration, not a product screenshot.
同主題延伸閱讀
生活分享
Codex 學習中心:完整教學目錄
從安裝、第一個任務到 MD 規則與進階整合,規劃 60 篇 Codex 教學、十個單元。依程度、平台、需求或指令搜尋下一篇;尚未公開的教學會標示狀態,方便安排學習路線。
生活分享
Worktree 與多任務隔離
Worktree 讓同一個 Git 程式庫有不同的工作目錄,各自承接不同分支。它適合讓兩項工作分開改檔,但資料庫、連接埠與外部服務仍可能共用,不能把檔案隔離當成所有資源隔離。
生活分享
實戰:製作小網站
從 brief.md 規劃並製作 Small Steps 待辦網站,完成新增、完成、刪除、篩選與本機資料保存。將 HTML、CSS、資料函式、畫面事件與測試分開,以 Node 測試和瀏覽器操作驗收,並留下可重新啟動與還原的交接紀錄。
生活分享
用量與效率:減少重工
記錄任務條件、模型選項、時間與成果,找出能減少無效重試和過多上下文的調整。
引用本文的文章
最新旅遊情報攻略

情報
2026 韓國楓葉預測:雪嶽山 10 月 20 日、首爾近郊 10 月底、內藏山與漢拏山 11 月上旬
韓國山林廳 2026 年 9 月 22 日公布的楓紅高峰預測:雪嶽山 10 月 20 日,春川、國立樹木園到首爾植物園落在 10 月 28 日到 11 月 2 日,內藏山 11 月 4 日、漢拏山 11 月 6 日,整體比最近 5 年晚約 0.8 天。整理各地楓樹與銀杏的預測日、首爾出發怎麼排,以及出發前去哪裡看即時楓況。2026 年 10 月查證。
- 季節活動
- 自然
- 觀景

攻略胡志明市
胡志明市到頭頓一日遊:白藤碼頭搭高速船、船票與班次,下船就是胡梅纜車與耶穌基督像
人在胡志明市挪一天去頭頓看海:市中心的白藤高速船碼頭搭船,航程 120 分鐘到頭頓的胡梅碼頭,平日成人 320,000 越南盾、週末 350,000,回程末班平日 15:00。下船就是胡梅纜車站,同一條路上有白宮,小山頂上是耶穌基督像。平日一天只有兩班船,整天要從末班船倒推著排。
- 交通
- 行程範例
- 海灘

攻略沖繩
沖繩不開車攻略:單軌只到浦添,美麗海水族館要坐兩個多小時的巴士,回那霸的最後一班直達車 17:22 就開走
不租車的沖繩怎麼移動:那霸市區靠沖繩都市單軌電車(ゆいレール),那霸機場站到終點てだこ浦西 19 站、17 公里、37 分鐘,一日券 1,000 日圓;美麗海水族館有那霸機場直達的高速巴士,單程 2,000 日圓起、官方時刻表上 2 小時上下,下車後還要走 10 分鐘;古宇利島要在今帰仁村役場轉車,當天來回光坐車就六個半小時;回程的最後一班直達車 17:22 就從記念公園前開走(2026 年 9 月查證)。
- 交通
- 行程範例
- 預算
資料來源
- Git merge and abort · 查證日期:
- Git worktree · 查證日期:
- Codex worktrees · 查證日期: