同时开多个分支工作,把电脑干到死机,同事说我是周扒皮

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,配置独立。

:light_bulb: 提示:git worktree list 可查看所有 worktree 状态。

善后处理

# 删除 worktree 目录 + 注销 git 记录
git worktree remove
rm -rf ../project-old-feature
git worktree prune

昨天开的分支太多,把电脑干死机了,今天收敛了一些了,不再搞那么多分支了。

1 个赞

善后处理改为

# 删除 worktree 目录 + 注销 git 记录
git worktree remove -f ../project-old-feature
git worktree prune

谐音“Tree”