Boost Your AI Coding Flow with Git Worktree

前言 / Introduction 為什麼需要 git worktree? 在現代軟體開發中,我們經常面臨這樣的困境: 多個功能同時開發:主線功能、實驗性功能、緊急修復 AI 輔助開發:AI 生成的程式碼需要測試,但不想污染主分支 分支切換困擾:頻繁的 git checkout 容易忘記當前狀態 Stash 堆積:臨時程式碼越來越多,難以管理 Git Worktree 就是為了解決這些問題而生。它允許你在同一個 repository 中創建多個工作目錄,每個目錄對應不同的分支,讓你可以同時進行多個開發任務。 git worktree 核心概念 什麼是 Worktree? git worktree 是 Git 2.5+ 引入的功能,它允許你: 在同一個 repository 中創建多個工作目錄 每個工作目錄可以切換到不同的分支 所有工作目錄共享同一個 .git 目錄 可以同時編輯、測試、提交不同分支的程式碼 與其他 Git 功能的比較 功能 用途 優點 缺點 Commit 永久記錄程式碼 版本追蹤完整 不適合半成品 Stash 臨時暫存變更 快速切換分支 容易堆積、遺忘 Branch 功能分支開發 版本控制完整 需要頻繁切換 Worktree 平行工作目錄 同時開發多分支 需要更多磁碟空間 實戰教學:從零開始使用 Worktree 1. 基本操作 創建新的 Worktree # 基本語法 git worktree add <path> <branch-name> # 實際範例:創建一個新的 Worktree 來開發 AI 功能 git worktree add ../myapp-ai-feature ai-feature # 如果分支不存在,使用 -b 參數創建 git worktree add -b experimental-feature ../myapp-experimental experimental-feature 查看所有 Worktree # 列出所有 Worktree git worktree list # 輸出範例: # /home/user/myapp main [main] # /home/user/myapp-ai-feature ai-feature [ai-feature] # /home/user/myapp-experimental experimental-feature [experimental-feature] 刪除 Worktree # 刪除 Worktree(會同時刪除對應的分支) git worktree remove ../myapp-ai-feature # 強制刪除(即使有未提交的變更) git worktree remove --force ../myapp-ai-feature # 只刪除 Worktree,保留分支 git worktree remove --keep-branch ../myapp-ai-feature 2. 進階用法 創建臨時 Worktree # 創建臨時 Worktree,用完自動清理 git worktree add --detach ../temp-Worktree HEAD # 或者指定特定 commit git worktree add --detach ../temp-Worktree abc1234 移動 Worktree # 移動 Worktree 到新位置 git worktree move ../myapp-ai-feature /new/path/ai-feature # 移動後記得更新 IDE 的專案路徑 AI 開發場景的最佳實踐 場景一:AI 程式碼實驗 當 AI 生成多個解決方案時,使用 Worktree 可以同時測試: ...

August 24, 2025 · 2 min · 369 words · Daniel Ho