name: git-worktree version: "1.1.0" description: Git Worktree 管理命令。提供 init、list、remove 三个子命令来管理项目 worktree。 user-invocable: true allowed-tools:
- Bash
- AskUserQuestion
Git Worktree 管理命令 (v1.1.0)
管理项目中的 Git worktree,支持创建、列表查看和删除操作。
调用方式
/git-worktree init "任务描述" # AI 自动生成分支名称
/git-worktree init "任务描述" --branch "分支名称" # 指定分支名称
/git-worktree list # 列出所有 worktree
/git-worktree remove # 删除 worktree
命令详解
init - 创建新的 Worktree
根据用户描述的任务,创建 worktree。分支名称由 AI 根据任务描述自动生成。
调用方式:
/git-worktree init "任务描述"
参数说明:
任务描述- 任务的简短描述(必需)
AI 生成分支名称的规则:
AI 会根据任务描述生成分支名称,格式为 <type>/<description>,例如:
- "添加用户 Excel 导入导出功能" →
feature/user-excel-import-export - "修复登录页面样式问题" →
bugfix/login-page-style - "优化用户查询性能" →
refactor/user-query-performance
分支类型前缀:
| 关键词 | 分支类型 |
|---|---|
| feat, 功能, 添加, 新增, 实现 | feature |
| fix, 修复, bug, 错误, 问题 | bugfix |
| refactor, 重构, 优化, 重写 | refactor |
| docs, 文档, 说明, readme | docs |
| test, 测试, 单元 | test |
| chore, 配置, 构建, 依赖 | chore |
名称要求:
- 必须是英文字母、数字和连字符
- 全部小写
- 简洁描述任务内容
交互流程:
- AI 分析任务描述,生成分支名称
- 执行脚本创建 worktree(传入分支名称)
- 脚本输出
[ASK_USER_OPEN_ITERM]标记和信息 - AI 检测到标记后,使用 AskUserQuestion 询问用户是否打开 iTerm2
- 用户同意后,执行以下命令打开 iTerm2:
cd /Users/lee0407/dev/projs/auth && python3 .claude/skills/git-worktree/scripts/open_iterm.py "<worktree_path>" "<branch_name>" "<description>"
执行流程:
- AI 分析任务描述,生成英文分支名称(如
feature/user-excel-import) - 调用脚本创建 worktree,传入分支名称
- 脚本基于 develop 分支创建新分支和 worktree
- 输出
[ASK_USER_OPEN_ITERM]标记,等待 AI 询问用户
使用示例:
/git-worktree init "添加用户 Excel 导入导出功能"
# AI 生成分支名称: feature/user-excel-import-export
# 创建 worktree 后询问是否打开 iTerm2
指定分支名称(可选):
如果用户希望自定义分支名称,可以使用 --branch 参数:
/git-worktree init "任务描述" --branch "feature/custom-name"
AI 响应规则
当执行 /git-worktree init 后,脚本会输出 [ASK_USER_OPEN_ITERM] 标记。AI 应:
- 检测到
[ASK_USER_OPEN_ITERM]标记 - 解析标记后的信息(格式:
path|branch|description) - 使用 AskUserQuestion 询问用户:
{
"questions": [
{
"question": "是否要在 iTerm2 中打开新 tab 并启动 Claude?",
"header": "iTerm2",
"options": [
{"label": "是,打开 iTerm2", "description": "在 iTerm2 新 tab 中启动 Claude"},
{"label": "否,稍后手动打开", "description": "不打开,稍后自行执行"}
],
"multiSelect": false
}
]
}
- 用户选择"是"后,执行:
cd /Users/lee0407/dev/projs/auth && python3 .claude/skills/git-worktree/scripts/open_iterm.py "<worktree_path>" "<branch_name>" "<description>"
脚本说明
worktree_manager.py
主脚本,处理 worktree 的创建、列表和删除操作。
open_iterm.py
辅助脚本,用于在 iTerm2 中打开新 tab 并启动 Claude。
命令详解
list - 列出所有 Worktree
显示当前仓库中所有 worktree 的列表。
调用方式:
/git-worktree list
输出格式:
Git Worktree 列表
============================================================
主 /Users/lee0407/dev/projs/auth [develop] ✓
└─ worktrees/feature-excel-import [feature/excel-import] ✓
└─ worktrees/bugfix-login-issue [bugfix/login-issue] ✗
============================================================
✓ = 干净工作区 | ✗ = 有未提交更改
使用示例:
/git-worktree list
remove - 删除 Worktree
交互式删除指定的 worktree。
调用方式:
/git-worktree remove # 交互式选择
/git-worktree remove 1 # 按索引删除
/git-worktree remove feature-xxx # 按路径删除
注意事项:
- 不会删除主目录的 worktree
- 不会删除有未提交更改的 worktree(除非强制)
使用示例:
/git-worktree remove
# 显示可删除的 worktree 列表,供用户选择
工作原理
Git Worktree 允许在同一个仓库中同时在多个分支上工作:
auth/
├── .git/
├── worktrees/
│ ├── feature-excel-import/ # 功能开发 worktree
│ └── bugfix-login-issue/ # Bug 修复 worktree
├── auth-biz/
├── auth-server/
└── ...
最佳实践
- 每个任务一个 worktree - 保持工作区干净
- 及时清理 - 任务完成后删除不需要的 worktree
- 描述清晰 - 使用有意义的任务描述便于识别
- 先更新 develop - 创建前确保 develop 是最新的
注意事项
- 所有 worktree 必须创建在
worktrees/目录下 - 创建前会自动检查 develop 分支是否为最新
- 删除前会询问用户确认
- 不会删除主目录的 worktree