- Published on
Claude Code 多工處理:運用 Git 工作樹提升開發效率
Claude Code 多工處理:運用 Git 工作樹提升開發效率
這段影片探討了如何有效率地使用 Claude Code 這款強大的 AI 程式碼助理進行多工處理,以解決在 AI 輔助開發工作流程中常見的效率瓶頸。影片指出,Claude Code 目前被認為是 AI 驅動開發領域中最具能力的工具之一,然而,當它在同一 Git 分支上執行大型任務時,開發者往往需要長時間等待,無法同時進行其他工作,導致工作流程受阻並可能引發大量合併衝突。
為了解決這個問題,影片重點介紹了 Git 工作樹 (Git WorkTrees) 的應用。
Git 工作樹的原理與優勢
獨立程式碼環境
Git 工作樹的運作方式並非僅僅創建一個新的分支,而是在檔案系統中複製一份完整的程式碼庫(包括所有檔案和資料夾)。這使得開發者或 AI 代理可以在這個獨立的複製程式碼庫中,於其專屬的分支上進行開發工作。
避免衝突
由於每個工作樹都擁有獨立的檔案集合,多個開發者或 AI 代理可以同時在不同的工作樹中工作,而不會立即產生衝突,大幅提升了並行開發的能力。
彈性整合
當工作樹上的開發任務完成後,其變更可以像正常分支一樣,無縫地合併回主分支。
Git 工作樹的實踐與挑戰
1. 手動設定流程
首先,需要在專案主資料夾旁建立一個專門存放工作樹的資料夾(例如:專案名稱-WorkTrees
)。影片強調,將工作樹資料夾置於主專案資料夾之外是最佳實踐。
不推薦內部巢狀
影片引用 Claude 的建議,解釋了為何不應將工作樹資料夾巢狀於主專案內部:
- Git 預設會追蹤這些目錄,除非手動加入
.gitignore
,否則可能誤提交整個複製的程式碼庫 - Git 及相關工具可能會因巢狀的程式碼庫而產生混淆
- 某些開發環境 (IDE) 工具會遞歸掃描專案目錄,導致效能下降或混亂
操作步驟
- 使用
git worktree add <目標路徑> <分支名稱>
指令來創建新的工作樹 - 在新的工作樹目錄中開啟獨立的開發環境(如 Cursor 編輯器的新視窗),並切換到相應的工作樹分支
2. Claude Code 自訂指令的限制
影片嘗試透過 Claude Code 的自訂斜線指令(例如:/createWorkTree
)來自動化工作樹的創建。
然而,Claude Code 存在安全權限限制,無法在專案主資料夾之外執行 cd
(變更目錄)操作。這意味著它無法完全自動化地在外部創建工作樹並進入該目錄。
3. 基於終端機別名 (ZSH Alias) 的自動化方案
鑑於 Claude Code 的權限限制,影片推薦使用自訂的終端機別名指令碼來實現完整的自動化,例如在 ZSH 設定檔中定義 WT <分支名稱>
別名。
指令碼功能
這個指令碼可以自動執行以下操作:
- 取得當前專案資料夾名稱
- 創建一個相鄰的工作樹根資料夾(如
Music Shop-WorkTrees
) - 在該根資料夾內為指定分支創建新的工作樹(複製整個程式碼庫)
- 關鍵優化: 自動複製必要的隱藏檔案和配置,例如
.ENV
環境變數檔、.cloud
(Claude Code 設定)、.cursor
(Cursor IDE 設定)以及其他自訂程式庫資料夾(如instrumental components
和agent OS
)。這是確保新工作樹環境能夠立即運作的關鍵步驟 - 在新的工作樹目錄中自動開啟一個新的 Cursor 視窗,並切換到對應的 Git 分支
多代理並行開發實例
影片以一個簡單的 Rails 應用程式「音樂商店」為例,展示了如何利用上述自動化工作流程,同時添加「鼓」、「貝斯」和「鍵盤」三種樂器功能:
實施步驟
- 透過
WT drums
、WT bases
、WT keyboards
指令快速創建三個獨立的工作樹和分支 - 在每個工作樹的 Cursor 視窗中啟動獨立的 Claude Code 實例,並給予其各自的開發任務
- 為了測試和驗證,每個工作樹上的 Rails 伺服器在不同的連接埠運行(例如:主專案 3000、鼓 3002、貝斯 3003、鍵盤 3004),確保互相獨立且可同時瀏覽
- 當各個功能在獨立的工作樹中開發完成並提交後,將其合併回主分支。影片也演示了處理預期的合併衝突(例如在導航列檔案中),這與日常的團隊協作方式一致
關鍵技術要點
- Git WorkTrees: 創建獨立的程式碼庫副本,實現真正的並行開發
- 終端機自動化: 通過 ZSH 別名簡化工作樹創建流程
- 環境配置同步: 自動複製隱藏檔案和配置,確保開發環境一致性
- 多代理協作: 同時運行多個 Claude Code 實例處理不同任務
- 衝突管理: 延遲衝突處理到合併階段,提高開發效率
總結
透過 Git 工作樹與自訂終端機指令碼的結合,開發者可以有效地利用 Claude Code 進行多工處理。這種方法使得同時啟動多個 AI 程式碼代理,讓它們在獨立的程式碼環境中並行開發不同功能成為可能,顯著減少了等待時間並最小化了早期衝突,從而大大加速了產品開發與交付。
圖片來源:AI 產生