Git 進階使用 - Git Worktree 多工的好朋友
Obstacles when Using Git
我還記得以前雖然已經很熟悉 Git 的操作,但其中一個最大的問題點在於說
我如果想要對同一份 codebase 進行不同實驗,我沒辦法同時進行,除非說我把資料手動複製出來
這個問題其實存在滿久的,而我一直沒有嘗試去解決它
直到 Coding Agent 的出現,這東西才又重新回到引起我的注意
What does it Mean in Terms of Claude Code?
我在用 Claude Code 的時候,也遇到了相同的問題
隨著 AI Agent 的能力爆發,寫 code 的速度急速成長
鑑於其多工的能力,如果沒辦法同時做多個 branch,那就喪失這種快速開發的能力了
Git Worktree
所以 Worktree 就可以很好的解決這個問題,他允許你 同時 checkout 多個 branch
架構上它分成兩種 worktree
main worktree: 就是你用 git init 建立的那個linked worktree: 可以有 0 或多個,主要看你需求
每個 worktree 都有自己獨立的狀態,但是 .git 是共用的
所以其實你不是用太擔心說硬碟空間會被用完這樣
How Worktree Works
簡單的一行指令你就能夠建立 linked worktree
1
$ git worktree add feat/104/add-user-login /private/claude/xxx
這個 worktree 就會被建立在 /private/claude/xxx 這邊
然後 branch 的名字也會被設定為 feat/104/add-user-login
那一個問題油然而生
如果我開發過程中 base branch 更新,是要怎麼辦
就直接 rebase 就可以了,很直覺吧
Limitations
Worktree 在使用的時候有幾個需要注意
一個是,同一個 branch 不能長出多個 linked worktree
這個也很好懂,多個相同 Worktree 他就會是處理相同的 codebase
再來當你完成 branch 開發需要刪除的時候
要用 $ git worktree remove 指令,單純刪除資料夾並不會完整清除
Leave a comment