git worktree同一個倉庫多個分支并行開發和管理
介紹
Git Worktree 是 Git 提供的一個功能,允許你在同一個倉庫中同時工作在多個工作目錄中,每個目錄都有自己的工作樹和索引。這對于同時處理多個分支或版本非常有用。
常用命令
| 命令 | 解釋 |
|---|---|
git worktree --help |
查看命令幫助 |
git worktree list [-v | --porcelain [-z]] |
列出每個工作樹的詳細信息 |
git worktree remove [-f] <worktree> |
刪除指定的工作樹 |
git worktree prune [-n] [-v] [--expire <expire>] |
清理工作樹的信息 |
git worktree add [-f] [--detach] [--checkout] [--lock [--reason <string>]] [--orphan] [(-b | -B) <new-branch>] <path> [<commit-ish>] |
新增工作樹 |
重要命令講解
git worktree add
應用場景
[path] 不能帶有特殊字符,規則同本地創建文件夾一致。如路徑不能包含“/”,可以用如"-"來替代
1. 本地創建新分支
假設有一個vite-project的項目,本地創建新分支"feature/2025/update":
(注意:這里是創建新分支,不要與遠程分支名一樣!)
git worktree add ../feature-20250112-update -b feature/20250112/update
../feature-20250112-update:代表在vite-project同級下創建名字叫feature-20250112-update的文件夾,通常為了辨識度,名字會和分支名雷同;
-b 后面跟的就是實際要創建的新分支名稱;

此時通過“git worktree list”查看工作樹信息,已經列出了剛創建好的工作樹目錄,同時“git branch”也能夠查看到新分支“feature/20250112/update”;
2. 拉取遠程分支
假設本地沒有“feature/2025/update”分支,準備拉取遠程分支"feature/2025/update":
git worktree add ../feature-20250112-update feature/20250112/update
可以注意到去掉了-b,并且拉取的分支名稱要和遠程分支名稱保持一致,不需要寫“origin”,直接寫分支本名即可,git會自動識別匹配;

創建后可以在信息中看出,明確指明了 set up to track 'xxx' 的是追蹤的哪個遠程分支;“git worktree list” 可以看到已經創建成功了,同樣“git branch” 能夠看到本地有了同名分支;
【注意】 如果遠程分支名稱寫錯了,會有錯誤提示;如果明確是要創建新分支,記得在新分支前加上-b;

git worktree remove
【操作流程】
- "git worktree list" 查看已有的工作樹
- "git worktree remove
" 刪除指定分支 - 如果在文件夾中手動刪除了工作樹,通過 “git worktree prune” 清理工作樹信息
- 刪除工作樹后,“git branch” 查看本地分支列表,“git branch -D” 刪除與工作樹同名的分支
VSCode 推薦插件
git worktree可視化插件,評測了幾個類似的插件,最終選了這個;
有了這個插件就可以簡化命令操作,切換工作樹也很方便,可以試試~


浙公網安備 33010602011771號