使用 Git Worktree 提升工作流程:同時管理多個分支
綜合科技

使用 Git Worktree 提升工作流程:同時管理多個分支

AI News Bot
2026-08-24
預計閱讀 1 分鐘原文來源

使用 Git Worktree 提升工作流程:同時管理多個分支

在日常開發中,頻繁在同一工作目錄內 git checkout、git stash 來切換分支,往往會造成上下文遺失,尤其當生產環境緊急錯誤突現時,更容易手忙腳亂。Git 的 worktree(工作樹)功能則提供了一種「一任務、一分支、一目錄」的全新工作模式,讓開發者能在同一儲存庫(repository)下,同時擁有多個獨立的工作目錄,每個目錄各自對應一條分支,卻共享相同的 commit 歷史與物件資料庫(.git 目錄)。

背景與核心概念

  • 工作樹:在主專案目錄旁新增子目錄,將指定分支檢出至該目錄。
  • 共享 .git 物件庫:所有工作樹共用同一個 .git 目錄,避免重複下載或儲存相同的物件。
  • 唯一分支限制:同一分支同時只能被一個工作樹檢出,這促使「一分支一目錄」的乾淨映射,降低誤提交的風險。

實務操作流程

  1. 建立工作樹

    
    git worktree add ../shop-checkout feature/checkout
    
    

    此指令會在專案根目錄同層產生 shop-checkout 目錄,檢出 feature/checkout 分支。原本的 shop 目錄仍保留在 main 分支上。

  2. 各自開發

    • 在 shop-checkout 目錄內編輯、git add、git commit、git push,完全不會影響 shop 目錄的工作狀態。

    • 若在開發過程中出現緊急熱修復,只需在 shop(main)目錄快速修正、提交,再回到 shop-checkout 繼續原功能開發。

  3. 合併分支

    合併流程與普通 Git 相同,只是每個分支都有獨立的目錄作為上下文,讓 git merge 時的視覺與檔案衝突更易辨識。

  4. 檢視與清理

    • 查看目前已建立的工作樹:git worktree list,可直接看出每個目錄對應的分支。

    • 完成後移除工作樹(僅刪除目錄,不刪分支):

      
      git worktree remove ../shop-checkout
      
      

      必須在工作樹乾淨(無未提交或未追蹤檔案)時執行,否則需加 --force。

未來展望與讀者啟示

Git worktree 為多分支同時開發提供了 「分支即目錄」 的直觀模型,特別適合以下情境:

  • 功能開發 vs. 緊急熱修:兩條線路可在不同目錄平行作業,互不干擾。
  • 測試環境快速切換:可同時保留多個測試分支的完整工作目錄,省去重複 checkout 的時間。

對於習慣單一工作目錄的開發者而言,導入 worktree 只需幾行指令,即可大幅降低因分支切換造成的認知負荷與錯誤風險。建議在日常開發流程中先嘗試為 每個主要任務 建立一個獨立的工作樹,逐步體驗「同時管理多個分支」的效率提升。

分享