max-sixty/worktrunk 是 GitHub 上的開源專案,本站記錄時 10,764 星;一天內新增約 524 顆星。我們在一台 RTX A6000 48 GB 工作站 上,從安裝到跑出結果整段錄下終端機;測的是 2026-11-04 的版本(commit bac7f7e137cf)。實測影片公開後會嵌在本文最下方。
背景
在現代軟體開發中,特別是搭配 AI 代理(如 Claude Code 或 Codex)進行並行任務時,開發者常需要同時處理多個功能分支。Git 原生的 worktree 功能雖然允許在同一個倉庫中維護多個工作目錄,避免頻繁切換分支造成的干擾,但其指令語法繁瑣。例如,建立一個新的 worktree 通常需要輸入 git worktree add -b <branch> <path>,接著還需手動 cd 進入該目錄,對於需要管理 5 到 10 個以上並行任務的場景來說,心智負擔與操作成本較高。
Worktrunk 是一個用 Rust 撰寫的 CLI 工具,旨在簡化 Git worktree 的管理。它透過將 worktree 的路徑自動對應到分支名稱,並提供簡潔的核心指令(如 wt switch、wt list、wt merge),讓 worktree 的使用體驗接近於普通的分支切換。此外,它還整合了 hooks 與 copy-on-write 快取機制,以優化本地工作流。
運作方式與使用方式
本次實測在 Ubuntu 24.04 環境下進行,硬體為 Intel Core i7-9700 搭配 62 GB RAM。安裝過程透過 curl 下載 v0.81.0 版本的預編譯二進位檔,並透過 SHA256 校驗確保完整性,最終將 wt 指令安裝至 ~/.local/bin。安裝完成後,透過 wt --version 確認版本為 v0.81.0。
實際操作流程分為建立、查看與合併三個階段。首先,在一個測試用的 Git 倉庫中,使用 wt switch --create feature-auth 指令,Worktrunk 自動建立了名為 feature-auth 的分支,並在父目錄下建立了對應的工作樹目錄 demo-repo.feature-auth。接著,使用 wt list 指令,終端機輸出了一個表格,清晰展示了所有 worktree 的分支名稱、狀態、相對於 main 的差異以及路徑。最後,在 feature-auth 目錄下提交變更後,執行 wt merge main,工具自動將變更合併回 main 分支,並在背景清理了該 worktree 與分支。
與未使用時的差異
| 情境 | 不用它 (原生 Git) | 用它 (Worktrunk) |
|---|---|---|
| 建立並切換到新分支的工作樹 | 需輸入 git worktree add -b feat ../repo.feat 後再 cd ../repo.feat | 輸入 wt switch --create feat,自動建立並提示路徑 |
| 查看所有並行工作樹狀態 | 需執行 git worktree list,輸出資訊較基礎 | 執行 wt list,顯示分支、狀態、差異、遠端同步狀態與提交訊息 |
| 合併分支並清理工作樹 | 需手動切換回 main、執行 merge、刪除 worktree、刪除分支 | 執行 wt merge main,自動合併並在背景清理 worktree 與分支 |
| 路徑管理 | 需手動指定或記憶 worktree 的路徑 | 路徑由分支名稱自動推導,無需記憶絕對路徑 |
安裝與執行過程
| 步驟 | 指令 | 結果 |
|---|---|---|
| 環境檢查 | uname -a; python3 --version; uv --version; node --version; nvidia-smi ... | 結束碼 0,確認 Linux 環境、Python 3.12.3、Node v18.19.1 及 GPU 狀態正常。 |
| 取得原始碼 | git clone ... && git checkout bac7f7e137cf... | 結束碼 0,成功 checkout 指定 commit,目錄大小約 26M。 |
| 安裝 Worktrunk | curl -LsS -o ... && tar -xJf ... && install -m755 ... | 結束碼 0,SHA256 校驗通過,安裝版本 wt v0.81.0。 |
| 初始化測試倉庫 | git init -q -b main demo-repo && git commit -qm init | 結束碼 0,成功建立初始 commit 3ab6fa9。 |
| 建立新工作樹 | wt switch --create feature-auth | 結束碼 0,成功建立分支與 worktree,提示需安裝 shell integration 以自動 cd。 |
| 提交變更 | cd ... && git commit -qm "add auth" | 結束碼 0,成功在 feature-auth 工作樹中提交 commit 1354f54。 |
| 列出工作樹 | wt list | 結束碼 0,輸出表格顯示 main 與 feature-auth 兩個 worktree 的狀態與差異。 |
| 合併並清理 | wt merge main | 結束碼 0,成功合併 1 個 commit 至 main,並在背景移除 feature-auth worktree。 |
| 驗證結果 | git log --oneline && wt list | 結束碼 0,main 分支包含最新 commit,wt list 僅顯示剩餘的 main worktree。 |
結果驗證
實測結果顯示 Worktrunk 能正確執行 Git worktree 的核心操作。在步驟 4 中,執行 wt switch --create feature-auth 後,系統輸出明確的成功訊息:「✓ Created branch feature-auth from main and worktree @ ~/lab/notes/max-sixty-worktrunk/demo-repo.feature-auth」,這符合 README 中關於路徑自動計算的描述。雖然終端機提示「Cannot change directory — shell integration not installed」,但這屬於預期行為,因為我們未在 shell 設定檔中安裝整合腳本,不影響 worktree 的建立。
在步驟 6 的 wt list 輸出中,工具提供了比原生 git worktree list 更豐富的資訊,包括分支名稱、狀態、相對於 main 的提交差異(HEAD±)、遠端同步狀態(Remote⇅)以及提交訊息。這對於管理多個並行分支非常實用。步驟 7 執行 wt merge main 時,工具正確識別出只需合併 1 個 commit,並輸出「✓ Merged to main (1 commit, 1 file, +1)」,隨後自動清理了該 worktree。步驟 8 的驗證確認 main 分支已包含變更,且 wt list 僅剩一個 worktree,證明清理機制運作正常。


遇到的問題
1. 終端機提示「shell integration not installed」導致無法自動切換目錄,這是因為我們未執行 wt config shell install,屬於本站環境設定問題,不影響核心功能。
2. 步驟 1 中出現「warning: unable to rmdir 'demo-repo': 目錄不是空的」,這是因為先前測試殘留檔案所致,不影響本次 clone 與 checkout 操作。
結論
Worktrunk 是一款成熟且易用的 Git worktree 管理工具,特別適合需要同時處理多個分支或並行 AI 代理任務的開發者。它成功將繁瑣的原生指令簡化為直覺的命令,並提供了清晰的狀態檢視功能。對於習慣使用終端機且希望提升多分支開發效率的用戶,Worktrunk 是一個值得嘗試的選項。然而,若用戶僅偶爾使用 worktree 或偏好完全手動控制 Git 底層行為,原生指令可能已足夠。
- 它是什麼、解決什麼問題:Worktrunk 是什麼:簡化 Git Worktree 管理的 CLI 工具
- 照著做的安裝教學:Worktrunk 安裝與使用教學:在 Linux 三步管理 AI 並行開發

