Git Worktrees
git有一个隐藏的宝藏功能,叫做工作树,以前作用不大,但是自从有AI编程以后,她的作用就凸显出来了。
想象一下,你同时打开多个Trae,每个Trae都在不同的分支上干活,互不干扰,是不是很爽。完全不用担心AI处理复杂的逻辑,需要等待太长的时间。
用法
假设你的项目名称为project,当前分支为main。
# 主工作区(main 分支)
~/project (main)
# 添加一个 worktree,用于开发新功能
git worktree add ../project-feature-x feature/x
# 再加一个,用于紧急修复
git worktree add ../project-hotfix hotfix/login-bug
通过上面的操作,检出两个分支:
project/ # 原始目录,main 分支
project-feature-x/ # 独立目录,feature/x 分支
project-hotfix/ # 独立目录,hotfix/login-bug 分支
让后同时打开多个TRAE,每个去管理一个分支即可。
特点
- 共享 .git 对象库:新增 worktree 几乎不占额外磁盘(仅复制工作文件);
- 完全独立:每个目录有自己的暂存区、未提交更改、node_modules、venv 等;
- 无需反复 stash/checkout:三个任务可同时进行,互不影响;
- 支持 IDE 多开:VS Code / IntelliJ 可分别打开不同 worktree,配置独立。
提示:
git worktree list可查看所有 worktree 状态。
善后处理
# 删除 worktree 目录 + 注销 git 记录
git worktree remove
rm -rf ../project-old-feature
git worktree prune
昨天开的分支太多,把电脑干死机了,今天收敛了一些了,不再搞那么多分支了。