生活分享
Worktree 與多任務隔離
Worktree 讓同一個 Git 程式庫有不同的工作目錄,各自承接不同分支。它適合讓兩項工作分開改檔,但資料庫、連接埠與外部服務仍可能共用,不能把檔案隔離當成所有資源隔離。
閱讀時間約 15 分鐘 · 操作 20 分鐘

返回 Codex 教學總目錄Codex 學習中心:完整教學目錄從安裝、第一個任務到 MD 規則與進階整合,規劃 60 篇 Codex 教學、十個單元。依程度、平台、需求或指令搜尋下一篇;尚未公開的教學會標示狀態,方便安排學習路線。閱讀全文
目標與準備
本段提到的教學與資源: 分支與差異Git、分支、diff 與還原Git 保存檔案版本,分支承接一組修改,diff 顯示差異。Codex 可以協助操作,但你仍要確認修改屬於這次任務。聊天紀錄與 Git 歷史不同,恢復舊對話不會自動還原檔案。閱讀全文
Worktree 是同一 Git 儲存庫的另一份 checkout:檔案與暫存區分開,提交與分支資料仍共用。它適合一邊修 Bug、一邊研究其他功能,但不是安全沙盒。兩個目錄若連到同一資料庫、同一雲端文件或相同 port,仍可能互相影響。多人任務要同時分清檔案範圍、外部資料與執行服務,不能只看資料夾名稱不同就認定完全隔離。
步驟 1:建立不含私人資料的練習庫
在自己的練習資料夾裡,用檔案管理員新增空白的 worktree-lab 資料夾。Windows 用檔案總管,macOS 用 Finder,Linux 用檔案管理員;再於該資料夾開啟終端機。先確認現在的路徑確實是新資料夾,沒有正式專案檔案。下列命令只在這個新練習庫執行,設定作者身分也是此庫的 local 設定,不要加 --global。
git init -b main
git config user.name "Codex Learner"
git config user.email "learner@example.test"
git status --short
用編輯器在 worktree-lab 新增 notes.md,完整內容如下。這裡的 marker 是刻意可辨識的練習值,讓你不用依賴 Codex 的敘述就能比對檔案。保存 UTF-8 純文字並確認檔名沒有多出 .txt,再執行下一段提交命令。這次只加入 notes.md,不用 git add .,以免不小心把旁邊其他檔案也收進練習提交。
# Worktree practice
Marker: LOCAL-A
git add -- notes.md
git commit -m "Add worktree practice baseline"
git status --short
git branch --show-current
預期目前分支是 main,status 沒有未提交列。若提交失敗,讀取錯誤並修正此練習庫的作者設定;不要為了完成教材改公司儲存庫的簽章政策。還沒有第一個提交時,沒有可用的 HEAD 基準,先完成此步再新增 worktree。已有同名資料夾或分支時換一組未使用的練習名稱,將後續命令一致替換,不強制覆蓋既有內容。
步驟 2:建立第二個 checkout
git worktree add -b codex/worktree-practice ../worktree-copy
git worktree list
命令在目前資料夾外的同一層建立 worktree-copy,並用新分支 codex/worktree-practice。執行前先確認該路徑不存在;list 應列出兩個實際路徑,分別對應 main 與新分支。兩份 notes.md 一開始都應是 LOCAL-A。Windows 路徑也可以用這段相對路徑,前提是終端機確實在 worktree-lab;不確定時用終端機與路徑終端機與路徑:找到專案根目錄在 Windows、macOS、Linux 建立練習資料夾,確認目前目錄並辨識相對與絕對路徑。閱讀全文的方法先核對。
用另一個編輯器視窗開啟 worktree-copy/notes.md,只將 LOCAL-A 改成 COPY-B。回到原本 worktree-lab 的視窗,確認自己的 notes.md 仍是 LOCAL-A,再查看兩邊 status 與差異。不要在兩個視窗都只看檔案標籤 notes.md;顯示完整路徑或根目錄名稱,才能知道目前正在修改哪一份。
git status --short
git -C ../worktree-copy status --short
git -C ../worktree-copy diff -- notes.md
預期第一行 status 沒有改動,第二個 status 顯示 notes.md 已修改,diff 只有 marker 一行變動。這證明工作檔案隔離,不表示修改已合併回 main。若兩邊都變了,先核對實際路徑,看看是不是兩個編輯器指向同一個資料夾,或你也手動改了另一份;不要繼續提交直到原因清楚。
步驟 3:認識分支占用與保存成果
git -C ../worktree-copy switch main
Git 正常會拒絕把同一分支同時 checkout 到兩個 worktree,錯誤會指出 main 已被另一個 worktree 使用。這個失敗是保護機制,兩邊仍應留在原分支;不要加忽略占用或強制選項。回到自己的副本分支,把已核對的 marker 修改提交,再從原目錄比較兩個分支。提交仍保存在同一個本機儲存庫,不會自動出現在 GitHub。
提交前再做一次移除失敗的對照。保持 COPY-B 尚未提交,先用 worktree list 核對 ../worktree-copy 的完整路徑確實是本篇副本,再執行下面命令。預期 Git 因修改尚未保存而拒絕,資料夾與 COPY-B 都仍在。若已先提交,就跳過這個對照,不再製造額外變更。確認後才執行下一段提交;不用 --force。
git worktree list
git worktree remove ../worktree-copy
git -C ../worktree-copy status --short
git -C ../worktree-copy add -- notes.md
git -C ../worktree-copy commit -m "Change isolated practice marker"
git -C ../worktree-copy status --short
git diff main...codex/worktree-practice -- notes.md
Codex 桌面版怎麼對應這個流程
在 Git 專案的新任務輸入框下選 Worktree,再選起始分支,送出需求後由 Codex 建立工作目錄。選目前分支連同未提交修改時,先核對那些修改確實應帶入,不要把無關私有資料也當作任務背景。桌面建立的管理型 worktree 預設可能是 detached HEAD;要長期保留成果,可在任務標頭用 Create branch here 建立分支,再按正常 Git 流程驗收提交。
需要把同一任務與程式帶到 Local 時用 Hand off,完成後重新核對目錄、分支及檔案;Handoff 是移動工作,不等於已合併 main 或已部署。Windows、macOS、Linux 依可用的桌面版本操作相同欄位;若 Linux 預覽沒有所需控制,使用本篇 Git 命令方式並標記差異。手機透過 Remote 控制連線電腦上的任務,worktree 留在主機,不是在 iPhone 或 Android 本機執行 Git。
| 資源 | worktree 是否自動分開 | 必須自行核對 |
|---|---|---|
| 已追蹤檔案與暫存區 | 是 | 編輯器目前開啟路徑 |
| 提交、分支紀錄 | 共用 | 哪份 checkout 使用哪個分支 |
| node_modules、建置快取 | 通常需各自準備 | 專案安裝與啟動步驟 |
| 本機 port | 不保證 | 每個預覽使用的 port |
| 資料庫、雲端服務 | 不保證 | 練習資料與帳號範圍 |
常見問題、清理與驗收
副本缺少環境設定時,先看 .gitignore 與 README,依專案自己的準備步驟建立練習設定。不要把正式 .env 整份複製過去當捷徑。Codex 管理型本機 worktree 的 .worktreeinclude 有特定複製規則,不能套用到本篇手動 Git worktree;需要它時查官方文件及資料安全專案資料、金鑰與練習隔離建立虛構測試資料與可還原副本,辨識不該進入提示詞、截圖或版本庫的資訊。閱讀全文。預覽 port 被占用就選另一個本機 port 並記錄網址,不停止別人的服務。
清理前關閉正在使用副本的編輯器、終端機或預覽程序,回到原 worktree-lab,執行 list 比對完整目標路徑,再確認副本 status 為空。這次成果已提交在 codex/worktree-practice 分支才可移除副本;若還有未提交檔案,先保存與核對,遇到拒絕時不加 --force。下列操作只移除本篇建立的 worktree-copy,保留原庫與已提交分支。
git worktree list
git -C ../worktree-copy status --short
git worktree remove ../worktree-copy
git worktree list
git show codex/worktree-practice:notes.md
驗收時 list 應只剩原目錄,main 的 notes.md 仍是 LOCAL-A,git show 仍能看到分支中的 COPY-B。再加上先前一邊乾淨、一邊修改與分支占用失敗的紀錄,才足以證明建立、隔離、保存、移除四個階段。Git 命令的本機參考驗證與 Codex 桌面 Handoff 要分開標示;未操作平台依官方文件查證。下一步讀子代理分工子代理與工作分工子代理適合把能獨立完成的工作分開處理,再由主要任務整合結果。分工會增加模型與工具用量;若工作互相依賴、都要改同一段程式,平行處理反而可能產生衝突。閱讀全文,比較目錄隔離與工作分工各自解決什麼問題。
返回 Codex 教學總目錄Codex 學習中心:完整教學目錄從安裝、第一個任務到 MD 規則與進階整合,規劃 60 篇 Codex 教學、十個單元。依程度、平台、需求或指令搜尋下一篇;尚未公開的教學會標示狀態,方便安排學習路線。閱讀全文
閱讀完整文字說明
Repository to Worktree A / B to Integration
同主題延伸閱讀
生活分享
Codex 學習中心:完整教學目錄
從安裝、第一個任務到 MD 規則與進階整合,規劃 60 篇 Codex 教學、十個單元。依程度、平台、需求或指令搜尋下一篇;尚未公開的教學會標示狀態,方便安排學習路線。
生活分享
實戰:製作小網站
從 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 worktree · 查證日期:
- Codex worktrees and Handoff · 查證日期: