七、Git Worktree:为什么隔离工作空间很重要

在同一个分支上做多个功能是常见问题。一个功能的改动影响另一个功能的测试,失败可以完全丢弃而不影响其他工作。

Superpowers的Using Git Worktrees技能在实现开始时创建隔离工作空间。

Git Worktree是什么

Git worktree是一个目录,指向同一个仓库的不同分支:

javascript 复制代码
main repo: /project/main (branch: main)
worktree 1: /project/.claude/worktrees/feature-a (branch: feature-a)
worktree 2: /project/.claude/worktrees/feature-b (branch: feature-b)

每个worktree是独立的工作目录,有自己的分支状态。你可以在不同worktree中并行工作,互不干扰。

与传统分支的区别:

  • 传统:切换分支会改变当前目录的文件
  • Worktree:每个分支有独立目录,不需要切换

Superpowers的Worktree流程

在设计批准后,AI创建worktree:

erlang 复制代码
Creating worktree on new branch feature-a...
Setting up project in worktree...
Verifying clean test baseline...

步骤:

  1. 创建worktreegit worktree add .claude/worktrees/feature-a -b feature-a
  2. 设置项目 :在worktree中运行npm install
  3. 验证基线:运行现有测试,确认基线是干净的

第三步很重要:确保开始工作前,测试是通过的。如果基线有问题,需要先修复主分支。

为什么隔离重要

干净起点

你开始工作前,知道基线是正常的。如果工作过程中测试失败,你知道是你的改动导致,不是已有问题。

专注

当前功能的变更在独立分支。其他功能的工作不会影响你的测试。你可以专注于一个任务。

安全

如果功能实现失败,你可以完全丢弃worktree,不影响其他工作:

bash 复制代码
git worktree remove .claude/worktrees/feature-a
git branch -D feature-a

没有残留,没有污染主分支。

实际流程

AI执行:

shell 复制代码
Using the using-git-worktrees skill.

Step 1: Create worktree
$ git worktree add .claude/worktrees/todo-app -b todo-app
Preparing worktree (new branch 'todo-app')
HEAD is now at 6efe32c...

Step 2: Setup project
$ cd .claude/worktrees/todo-app
$ npm install
... installed dependencies

Step 3: Verify clean baseline
$ npm test
No tests yet. Baseline clean.

Worktree ready at .claude/worktrees/todo-app.
You can observe work there, or I can report here.

AI在worktree中工作,变更不影响main目录。

与Subagent-driven Development的结合

每个任务在同一个worktree中执行,但每个任务有独立的子代理context。

Worktree提供:

  • 文件系统隔离:不同功能不同目录
  • Git状态隔离:每个功能独立分支

子代理提供:

  • Context隔离:每个任务独立记忆
  • 审查隔离:审查者独立判断

两层隔离保证工作不互相干扰。

完成后的处理

功能完成后,AI使用Finishing-a-development-branch技能处理worktree:

选项:

  1. Merge to main:合并到主分支
  2. Create PR:推送到远程,创建PR
  3. Keep branch:保留worktree,稍后处理
  4. Discard work:删除worktree和分支

如果选择Merge或PR,完成后AI清理worktree:

bash 复制代码
git worktree remove .claude/worktrees/todo-app

如果选择Keep,worktree保留,你可以稍后手动处理。

如果选择Discard,AI立即删除,不保留任何工作。

常见问题

磁盘占用

Worktree是完整的工作目录,会占用磁盘。但完成后会清理,不会长期占用。

管理多个worktree

查看所有worktree:

bash 复制代码
git worktree list

手动删除:

bash 复制代码
git worktree remove <path>

完成后的残留

如果AI没有清理(异常终止),你可以手动清理:

bash 复制代码
git worktree prune  # 删除已删除分支的worktree引用

结论

Worktree的价值:

  • 干净起点:开始前确认基线正常
  • 专注:一个功能一个目录,不干扰
  • 安全:失败可以完全丢弃

Superpowers自动处理worktree生命周期:创建→工作→完成→清理。你不需要手动管理,专注于当前任务。

下一步

下一篇《团队协作中的边界:AI助手能做什么和不能做什么》将展示:

  • AI的能力边界在哪里
  • Superpowers如何保护你免于做出错误决策
  • 团队中使用AI的最佳实践
相关推荐
明月_清风7 小时前
MCP vs ACP vs LSP:AI 时代三大协议的「三足鼎立」
人工智能·网络协议·agent
Kobebryant-Manba7 小时前
学习Bert微调
人工智能·学习·bert
Java后端的Ai之路7 小时前
20、Python - 备忘录模式
开发语言·人工智能·python·外观模式·备忘录模式
飞哥数智坊7 小时前
我对 AI 生图的一点工程化理解
人工智能·aigc
ACP广源盛139246256737 小时前
M6/M5 Pro Mac mini 端侧 AI 新形态@ACP#GSV5800 Serdes 长距离视频传输在 AI 服务中的机会与落地场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos·音视频
xian_wwq7 小时前
【学习笔记】深度认知系列-第14讲 端侧AI崛起——为什么AI正在从云端走向本地
人工智能·笔记·学习
火山引擎开发者社区7 小时前
火山引擎 Milvus Vector Lakebase 正式公测
人工智能
ocean21038 小时前
2025-2026年AI部署与MLOps大厂面试高频问题
人工智能·面试·大模型推理·ai部署
嘿嘿-668 小时前
Windows 一键使用 GPT-6 Astra:Codex CLI 配置教程
java·人工智能·windows·gpt·chatgpt·web
冬奇Lab8 小时前
Code Agent 解剖(22):从零扩展——用 Markdown 写一个 Skill
人工智能