ThisWeb Logo
This.Web
所有文章React 效能優化實戰課
  1. 首頁
  2. 所有文章
  3. AI 開發
  4. worktree 指南,AI 開發的必備神器

worktree 指南,AI 開發的必備神器

AI 開發

ThisWeb

資深前端工程師

發佈/更新於

2026年4月8日

免費訂閱電子報!

和 2000+ 工程師一起學習軟體、AI 開發技巧,每週一收穫 1 篇技術內容、1 段職涯分享、1 個最新資訊!

免費訂閱電子報!

和 2000+ 工程師一起學習軟體、AI 開發技巧,每週一收穫 1 篇技術內容、1 段職涯分享、1 個最新資訊!

現在很多人會同時開好幾個 AI Agent 幫忙開發,例如一個 Agent 修登入、一個 Agent 改 UI,另一個 Agent 補測試。

問題是如果這些 Agent 都在同一份工作目錄裡操作,就很容易互相覆蓋檔案、改到同一批變更,最後可能額外花時間收拾衝突。

Git Worktree 就可以很好解決這個問題,它可以讓你用同一個專案,同時開出多個資料夾,分別對應不同分支,讓每個 Agent 各做各的,減少互相打架的機率。

今天這篇文章,就想帶你了解 Worktree。

不過開始之前,先確保你對 Git 有一些基本知識哦!例如 Repo、Stash、Branch 等等。

什麼是 Git Worktree?

你可以把 Git Worktree 想成:在同一個專案裡,多開幾個不同的工作資料夾。

每個資料夾都可以做自己的功能,你就不用一直切 branch,也不用把改到一半的東西先收起來。

這樣的好處是,你不需要一直 git checkout 來回切 branch,也不需要用 stash 暫存一堆改到一半的內容。

如果你現在是用 AI 協助開發,這個方式特別好用。

因為每個 worktree 都是一個獨立資料夾,你可以想像他們是分給不同 Agent 的獨立工位,每個 Agent 在自己的工位改檔案,就不會互相干擾。

建立 Worktree

建立 Worktree 的方式很簡單。首先,先確保你的電腦有安裝 Git:

  • Windows 用戶可以在這邊下載安裝:Git - Install for Windows
  • Mac 用戶則在這邊:Git - Install for macOS

接著,到你的專案目錄底下,使用 git worktree add 新增一個 worktree。

比如說你想開一個登入功能的分支:

shell
git worktree add -b feat/login ../feature-login

這個指令會:

  • 在目前專案旁邊建立一個 ../feature-login 資料夾
  • 建立一個新的 feat/login branch
  • 讓這個新資料夾直接 checkout 到 feat/login 分支

下一步,我們就可以到建立好的 worktree 資料夾,安裝依賴後開始開發:

shell
cd ../feature-login
npm install
npm run dev

如果你的 branch 本來就已經存在,也可以不用 -b,直接這樣寫:

shell
git worktree add ../feature-login feat/login

這邊有兩個注意事項:

  1. 同一個 branch 通常不能同時被 checkout 到多個 worktree。
  2. 每個 worktree 都是獨立資料夾,所以 node_modules、建置產物、開發中的暫存檔案,也都會各自存在自己的目錄裡

查看 Worktree

有時候 worktree 開多了,很容易忘記自己到底開了哪些。

這時候就可以用 git worktree list 查看目前所有 worktree:

git worktree list

輸出可能會長這樣:

shell
/path/repo            abc123 [main]
/path/feature-login   def456 [feat/login]

你可以從這個列表快速看出:

  • worktree 在哪個路徑
  • 它目前對應哪個 branch
  • 目前指向哪個 commit

移除 Worktree

當功能做完、合併回主分支後,就可以把不需要的 worktree 移除:

shell
git worktree remove ../feature-login

這個動作是移除那個工作目錄,不是刪掉整個 repository。

不過如果裡面還有未提交的變更,Git 會阻止你刪除,所以刪之前記得先確認內容是否已經提交或不需要保留。

或是你也可以使用 --force 來強制刪除:

shell
git worktree remove --force ../feature-login

移動 Worktree

如果你只是覺得原本 worktree 的資料夾位置不順手,也可以直接把它移到別的地方,不用刪掉重建。

例如原本你把登入功能的 worktree 建在:../feature-login

後來你想把它集中放到 ../worktrees 資料夾底下,就可以用:

shell
git worktree move ../feature-login ../worktrees/feature-login

這個指令的意思是:

  • 把 worktree 的目錄從舊位置移到新位置
  • Git 也會同步更新內部記錄
  • 你不用重新 checkout branch,也不用重新建立 worktree

實務上很適合拿來整理目錄結構。

比如一開始只是臨時測試,後來發現 worktree 越開越多,就可以把它們統一搬到像 ../worktrees/ 這種集中管理的資料夾裡。

補充知識

不過為什麼新開出來的資料夾也能正常版控呢?它明明不是一份完整複製的 Repo?

原因是 worktree 資料夾裡的 .git 通常不是資料夾,而是一個「檔案」。例如:

powershell
gitdir: /Users/you/project/.git/worktrees/feature-login

這一行代表目前這個 worktree 的 Git 管理資訊,實際上放在原始 repository 裡的 .git/worktrees/... 下面。

所以 worktree 不只是單純複製一份 repo,而是讓我們用節省空間的方式,共用 .git。

總結

如果你會同時開多個 AI Agent 做不同功能,Git Worktree 是很值得學會的工具。

它可以讓你在同一個 repository 下,同時開多個獨立工作目錄,讓每個 Agent 各自在自己的 branch 與資料夾中工作,減少互相覆蓋檔案、切 branch 混亂、或一堆 stash 的問題。

文章目錄

  1. 什麼是 Git Worktree?
  2. 建立 Worktree
  3. 查看 Worktree
  4. 移除 Worktree
  5. 移動 Worktree
  6. 補充知識
  7. 總結

頁面導覽

  • 首頁
  • 所有文章

聯絡資訊

THISWEB
03 小時 04 分鐘 32 秒
⏰ 限時 63 折優惠【React 效能優化實戰課】👉🏻 點我了解更多