Cursor CLI 搭配 Git Worktree

4 min read

Worktree 讓同一個 repo 有多個目錄(各在不同 branch);Cursor CLI 的規則是「在哪個目錄跑,就改哪個目錄」。兩個加在一起,等於多開幾個終端機、讓 CLI Agent 並行處理不同 branch——不用開一堆 Cursor 視窗,鍵盤流就能多線作戰。

為什麼要這樣搭?

做法 怎麼做 適合誰
Worktree + 多個 Cursor 視窗 每個視窗開一個 worktree 喜歡用 IDE、要看檔案樹與預覽
Worktree + CLI 多個終端機,各自 cd 到不同 worktree,跑 cursor agent 習慣鍵盤流、或只在伺服器/SSH 環境

共通點:每個 worktree 是獨立目錄 → 各自有獨立上下文 → 可以並行開發,互不踩腳。就像多個分身同時在不同 branch 上工。

基本用法:一個終端機對應一個 Worktree

假設你已經建好 worktree:

~/projects/
├── my-app/                  ← main
├── my-app--feature-auth/    ← feature/auth
└── my-app--feature-payment/  ← feature/payment

終端機 1(搞 auth):

cd ~/projects/my-app--feature-auth
cursor agent "實作 JWT 登入"

終端機 2(搞 payment):

cd ~/projects/my-app--feature-payment
cursor agent "加上 Stripe 結帳流程"

CLI 預設以目前工作目錄為上下文,所以兩個終端機各自只會改自己的 worktree。這樣就是「兩個 CLI Agent 並行」,不用開兩個 Cursor 視窗,省資源也省切換。

不切目錄:用 --path 指定 Worktree

人坐在主專案目錄,但想叫 CLI 去改某個 worktree:

cd ~/projects/my-app
cursor agent "幫 feature/auth 加上單元測試" --path ../my-app--feature-auth

--path 指定「要看的目錄」=那個 worktree 的路徑。適合一次只處理一個 worktree、或寫腳本時路徑固定。

非互動 + Worktree(腳本 / 批次)

對多個 worktree 依序跑同一類任務(例如都加 README、都跑 linter 修復):

# 範例:對兩個 worktree 都跑「修 lint」
cursor agent "依 .eslintrc 修復所有可自動修復的錯誤" --path ../my-app--feature-auth --no-interactive
cursor agent "依 .eslintrc 修復所有可自動修復的錯誤" --path ../my-app--feature-payment --no-interactive

或寫成迴圈(依你實際路徑調整):

for dir in ../my-app--feature-auth ../my-app--feature-payment; do
  cursor agent "修復 linter 錯誤" --path "$dir" --no-interactive
done

一次交代、多個 branch 一起整理,很適合 PR 前批量收尾。

和「Worktree + 多視窗」的關係

  • 多視窗:每個 Cursor 視窗開一個 worktree,用 IDE 裡的 Agent、Chat、Tab 補全。
  • CLI + Worktree:用終端機 + cursor agent,一樣是「一個目錄一個上下文」,多開幾個終端機就能並行。

也可以混用:例如主開發用視窗,某個 branch 只在伺服器上用 CLI 修一點小東西。

小結

  • Worktree = 多個目錄、多個 branch;CLI = 依「目前目錄」或 --path 做事 → 天生一對。
  • 並行:多開終端機,各自 cd 到不同 worktree,再跑 cursor agent
  • 單一終端:用 --path 某個-worktree 路徑 指定要改哪個 worktree。
  • 腳本/批次--path + --no-interactive 對多個 worktree 做同一類任務。

下一步:07-unlimit-loop-debug — 讓 CLI 自動迴圈修 code,直到測試通過(真人可以先去喝咖啡)。