Git工作树设置技能Skill git-worktree-setup

该技能用于设置 Git worktrees,以支持代理并行化和创建隔离的开发环境,适用于并行代理执行、独立环境配置和并发工作流优化。关键词:Git 工作树、并行化、环境隔离、代理执行、DevOps、开发流程。

DevOps 0 次安装 0 次浏览 更新于 3/11/2026

name: git-worktree-setup description: 为具有隔离环境的代理并行化设置 Git 工作树。当设置并行代理执行、为每个代理创建隔离环境或启用并发开发工作流时使用。 allowed-tools: Read, Grep, Glob

Git 工作树设置技能

指导为并行代理执行创建隔离的 Git 工作树环境。

何时使用

  • 设置并行代理执行
  • 创建隔离的开发环境
  • 配置多个实例的端口分配
  • 规划工作树目录结构

核心概念

为什么使用工作树?

Git 工作树提供:

  • 每个代理的文件系统隔离
  • 共享的 Git 对象数据库
  • 独立的分支
  • 从 origin/main 的干净检出

目录结构

repository_root/
├── trees/
│   ├── {adw_id}/           # 隔离的工作树
│   │   ├── src/
│   │   ├── .ports.env
│   │   └── ...
│   └── ...                  # 最多 15 个并发
├── agents/
│   └── {adw_id}/
│       └── adw_state.json
└── main codebase/

端口分配

确定性公式:

slot = hash(adw_id) % 15
backend_port = 9100 + slot
frontend_port = 9200 + slot

设置工作流

步骤 1:规划工作树位置

确定工作树应放置的位置:

默认: trees/{adw_id}/
替代: .worktrees/{adw_id}/

步骤 2:创建工作树

要执行的命令:

# 获取最新
git fetch origin

# 使用新分支创建工作树
git worktree add trees/{adw_id} -b {branch_name} origin/main

步骤 3:配置端口

创建 .ports.env

BACKEND_PORT={backend_port}
FRONTEND_PORT={frontend_port}
VITE_BACKEND_URL=http://localhost:{backend_port}

步骤 4:复制环境

cp .env trees/{adw_id}/.env
cat trees/{adw_id}/.ports.env >> trees/{adw_id}/.env

步骤 5:更新配置

对于任何绝对路径配置(MCP 等):

  • 更新路径指向工作树位置
  • 使用绝对路径,而非相对路径

步骤 6:安装依赖

cd trees/{adw_id}
# 后端依赖
cd app/server && uv sync --all-extras
# 前端依赖
cd app/client && bun install

验证清单

设置后,验证:

  • [ ] 工作树目录存在
  • [ ] Git 识别工作树(git worktree list
  • [ ] 分支正确
  • [ ] 端口已配置
  • [ ] 环境文件存在
  • [ ] 依赖已安装
  • [ ] 应用可以启动

清理操作

移除单个工作树

git worktree remove trees/{adw_id}
# 或强制移除如果有未提交的更改
git worktree remove trees/{adw_id} --force

修剪过时工作树

git worktree prune

列出所有工作树

git worktree list

关键记忆参考

  • @git-worktree-patterns.md - 完整工作树文档
  • @adw-anatomy.md - ADW 使用工作树
  • @zte-progression.md - ZTE 需要并行化

输出格式

提供设置计划:

## 工作树设置计划

**ADW ID:** {adw_id}
**分支名称:** {branch_name}
**工作树路径:** trees/{adw_id}

### 端口分配
- 后端: {backend_port}
- 前端: {frontend_port}

### 要执行的命令
1. `git fetch origin`
2. `git worktree add trees/{adw_id} -b {branch_name} origin/main`
3. 创建 `.ports.env`
4. 复制和配置环境
5. 安装依赖

### 验证步骤
- [ ] 验证工作树已创建
- [ ] 测试端口可用性
- [ ] 确认依赖已安装

故障排除

问题 解决方案
工作树已存在 先移除或使用不同的 ID
端口在使用中 检查使用情况,终止或使用不同的端口
分支已存在 使用现有分支或先删除
权限被拒绝 检查目录权限

版本历史

  • v1.0.0 (2025-12-26): 初始发布

最后更新

日期: 2025-12-26 模型: claude-opus-4-5-20251101