git worktree usage

git worktree 是 Git 提供的一个高级功能,它允许你在同一个本地仓库中同时检出多个分支到不同的目录中进行并行开发。 [1, 2]
与传统的 git checkout/switch(需要通过 git stash 暂存未完成的代码)或 git clone(重新下载整个仓库,耗费空间和时间)相比,git worktree 共享同一个 .git 历史记录和对象数据库,既省磁盘空间,又可以做到真正的“多线作战”。
 
常用命令指南
1. 创建新工作区 (add)
在当前项目目录的上一级(或其他指定地方)创建一个新目录,并在其中检出指定分支:
# 语法:git worktree add <新路径> <分支名>
git worktree add ../my-hotfix-branch main
如果你想创建一个全新的分支并关联到新工作区,可以使用 -b 参数:
git worktree add -b feature-login ../feature-login-dir main
2. 查看所有工作区 (list)
查看当前仓库关联了哪些工作区、分别在哪个目录、检出了什么分支:
git worktree list
3. 安全删除工作区 (remove)
当你完成了该分支的开发,并且已经提交或合并了代码,可以使用以下命令安全地删除工作区:
bash
# 这会自动删除该目录,并清理 Git 的内部引用记录
git worktree remove ../my-hotfix-branch

核心约束与注意事项
  1. 单分支独占限制: 同一个分支在同一时刻只能被一个工作区检出。如果 main 分支已经在主目录被检出了,你就不能在新的 worktree 里再次检出 main。如果一定要并行操作同一分支,需要在创建时加上 --detach 参数(分离 HEAD 状态)。 [1, 2, 3]
  2. 绝对路径依赖: Git 内部是通过绝对路径来记录各个 worktree 的。如果你手动移动了工作区的目录位置,会导致其失效。需要移动时,请使用官方命令:git worktree move <旧路径> <新路径>

posted on 2026-09-24 11:27  ENGINEER-F  阅读(5)  评论(0)    收藏  举报