別再被 Git Stash 綁架了!使用 Git Worktree 同時並行多個開發任務

Josh-avatar-img
發佈於學習
更新 發佈閱讀 5 分鐘
vocus|新世代的創作平台

前言:你是否也遇過這種窘境?

想像一下:你正在 feature-A 分支上寫得正順,突然老闆衝過來,說線上環境有個緊急 Bug 需要在 main 分支修復。

傳統上,你可能只能先 git stash 把寫到一半的內容存起來,切換分支後修完再切回來。如果改動範圍很大,這過程不僅繁瑣,還容易搞混。

這時候,Git Worktree 就是你的救星!

什麼是 Git Worktree?

簡單來說,git worktree 允許你在同一個專案(同一個 .git 資料夾)下,同時擁有多個工作目錄(Working Tree)

每個工作目錄都可以指向不同的分支。你可以在資料夾 A 開發新功能,同時在資料夾 B 修復緊急 Bug,兩邊互不干擾,卻共享同一個本地倉庫的歷史紀錄與物件。

核心優勢

  • 無需 Stash:不必打斷手邊的工作。
  • 節省空間:不需要像 git clone 那樣重複下載整個歷史紀錄。
  • 高效並行:可以在一個目錄跑大型測試或編譯,在另一個目錄繼續寫程式。

常用指令詳解

1. 建立新的工作樹

這是最常用的指令。它會建立一個新資料夾,並自動切換到指定的分支。

指令: git worktree add <路徑> <分支名稱>

  • 範例: git worktree add ../hotfix-dir emergency-fix
  • 這會在上一層目錄建立 hotfix-dir 資料夾,並切換到 emergency-fix 分支。

2. 查看目前所有的工作樹

如果你忘了自己開了多少個工作樹:

指令: git worktree list

3. 移除工作樹

當任務完成後,清理掉不再需要的工作樹:

指令: git worktree remove <路徑>


實戰應用情境

  • 程式碼審查 (Code Review):在不影響自己開發進度的情況下,開一個新目錄檢查同事的 Branch。
  • 版本環境對比:同時開啟 v1.0v2.0 的代碼,直接用編輯器進行物理上的比對,不用切來切去。
  • 長耗時任務:一邊在 A 目錄跑長達 10 分鐘的整合測試,一邊在 B 目錄繼續修下一個 Bug。

常見錯誤排除:為什麼我的指令失敗了?

在初次使用時,很多人會遇到 usage: git worktree add ... 的錯誤訊息,通常是因為以下兩個原因:

  1. 路徑衝突:不能使用 .(當前目錄)。因為目前目錄已經是主工作樹了,Git 不允許在同一個位置重疊建立另一個工作樹。
  2. 參數過多:指令語法必須嚴格遵守 <路徑> <分支>。如果多輸入了不必要的參數或打錯字,Git 就會報錯。

進階:如何優雅地管理 Worktree?

如果你習慣將所有的 Worktree 集中管理在專案內的 .worktrees/ 資料夾下,這是一個非常整潔的做法,但請務必做好以下設定:

1. 正確的指令範例

假設要針對 emergency-fix 分支開一個工作樹:

  • 若分支已存在: git worktree add .worktrees/emergency-fix emergency-fix
  • 若要同時建立新分支: git worktree add .worktrees/emergency-fix -b emergency-fix

2. 關鍵的 .gitignore 設定

因為 .worktrees/ 位在專案資料夾內,為了避免主專案的 Git 狀態變得混亂,請務必在你的 .gitignore 檔案中加入:

.worktrees/

這樣主專案就會忽略這些暫時性的工作目錄,保持開發環境乾淨。

3. VS Code 使用小撇步

在子工作樹資料夾中,Git 會自動產生一個 .git 檔案連結回主目錄。你可以同時將主專案與子工作樹加入 VS Code 的 Workspace (工作區),這樣就能在同一個側邊欄看到不同分支的代碼,進行極速開發與比對!


結語: Git Worktree 是一個被低估的神級工具。一旦習慣了「物理隔離」的開發模式,你就再也回不去頻繁 stash 的日子了。希望這篇文章能幫你優化開發流程!

留言
avatar-img
Josh的沙龍
57會員
125內容數
分享知識
Josh的沙龍的其他內容
2026/04/10
標籤命名有空格或需要更改已上傳的 Tag?本文整理 Git 標籤管理實戰技巧,包含回溯補打、刪除遠端標籤、正確命名規則及附註標籤用法。透過簡單指令,讓你專業管理版本發布,避免團隊溝通混亂。
Thumbnail
2026/04/10
標籤命名有空格或需要更改已上傳的 Tag?本文整理 Git 標籤管理實戰技巧,包含回溯補打、刪除遠端標籤、正確命名規則及附註標籤用法。透過簡單指令,讓你專業管理版本發布,避免團隊溝通混亂。
Thumbnail
2026/04/10
版本發布後才發現忘記打標籤?別擔心!本文教你如何在 Git 歷史紀錄中定位特定的 Commit ID,並快速補上輕量或附註標籤,最後同步至遠端伺服器。簡單三步驟,讓你的版本管理更加清晰專業。
Thumbnail
2026/04/10
版本發布後才發現忘記打標籤?別擔心!本文教你如何在 Git 歷史紀錄中定位特定的 Commit ID,並快速補上輕量或附註標籤,最後同步至遠端伺服器。簡單三步驟,讓你的版本管理更加清晰專業。
Thumbnail
2026/03/11
想要提升寫作效率?本文教你如何透過 PicGo 串接 GitHub 倉庫,實現「截圖即上傳」的自動化流程。從申請 GitHub Token 到配置 jsDelivr CDN 加速,只要三分鐘設定,就能讓你的 Markdown 圖片引用變得優雅且迅速,徹底告別手動上傳的煩惱。
Thumbnail
2026/03/11
想要提升寫作效率?本文教你如何透過 PicGo 串接 GitHub 倉庫,實現「截圖即上傳」的自動化流程。從申請 GitHub Token 到配置 jsDelivr CDN 加速,只要三分鐘設定,就能讓你的 Markdown 圖片引用變得優雅且迅速,徹底告別手動上傳的煩惱。
Thumbnail
看更多
你可能也想看
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
有關 git add, git commit, git push
Thumbnail
有關 git add, git commit, git push
Thumbnail
這篇文章將會介紹分支的合併,以及它常見的分類。
Thumbnail
這篇文章將會介紹分支的合併,以及它常見的分類。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這篇文章將會講解 Git 專案上傳 GitHub 的流程。
Thumbnail
這篇文章將會講解 Git 專案上傳 GitHub 的流程。
Thumbnail
最近在找資料的時候,偶然發現了兩個有趣的 git 指令:git commit --fixup 和 git rebase -i <sha> --autosquash。 研究了下發現對於像我這種每次 commit 都要斤斤計較,盡可能完美的人來說非常好用,因此寫一篇筆記記錄一下用法。
Thumbnail
最近在找資料的時候,偶然發現了兩個有趣的 git 指令:git commit --fixup 和 git rebase -i <sha> --autosquash。 研究了下發現對於像我這種每次 commit 都要斤斤計較,盡可能完美的人來說非常好用,因此寫一篇筆記記錄一下用法。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News