用途
git-worktree 技能用于管理 Git worktree,实现隔离的并行开发。当你需要同时运行多个会话,或并行处理多个功能时,可以使用该技能。
主要能力
该技能围绕 Git worktree 的核心命令展开,包括:
- 创建 worktree:可基于新分支、已有分支或特定提交创建。
- 列出 worktree:查看当前所有 worktree 及其对应分支。
- 删除 worktree:在合并分支后移除 worktree,支持强制删除含未提交更改的 worktree,以及清理失效引用。
使用方式
核心命令
创建 worktree:
# 使用新分支创建 worktree
git worktree add ../project-feature -b feature/user-auth
# 在已有分支上创建 worktree
git worktree add ../project-bugfix hotfix/critical-fix
# 在特定提交创建 worktree
git worktree add ../project-v1 release/v1.0
列出 worktree:
git worktree list
# 输出示例:
# /path/to/repo abc1234 [main]
# /path/to/project-feature def5678 [feature/user-auth]
# /path/to/project-bugfix ghi9012 [hotfix/critical-fix]
删除 worktree:
# 合并分支后移除 worktree
git worktree remove ../project-feature
# 强制移除含未提交更改的 worktree
git worktree remove --force ../project-feature
# 清理失效的 worktree 引用
git worktree prune
命名规范
使用一致且具描述性的名称:
# 推荐:描述工作内容
git worktree add ../myapp-feature-auth -b feature/auth
git worktree add ../myapp-bugfix-login -b hotfix/login-error
git worktree add ../myapp-experiment-v2 -b experiment/v2-redesign
# 不推荐:含义模糊的名称
git worktree add ../temp -b stuff
git worktree add ../test -b wip
与 ai-eng-system 集成
Worktree 支持并行运行多个 Claude 会话:
# 终端 1:功能实现
git worktree add ../project-auth -b feature/auth
cd ../project-auth
claude # 运行 /ai-eng/work "implement authentication"
# 终端 2:缺陷修复(并行)
git worktree add ../project-bugfix -b hotfix/critical-fix
cd ../project-bugfix
claude # 运行 /ai-eng/work "fix login timeout"
# 终端 3:代码评审
cd ../project
claude # 运行 /ai-eng/review
最佳实践
- 每个任务创建一个 worktree,保持 worktree 专注。
- 使用描述性命名,包含项目前缀和用途。
- 合并后清理,完成后移除 worktree。
- 定期运行
git worktree prune清理引用。 - 使用同级目录,将 worktree 放在主仓库旁边,而非嵌套其中。
- 不要共享 worktree,每个会话使用自己的 worktree。
常见工作流
功能开发与评审
# 1. 创建功能 worktree
git worktree add ../myapp-feature -b feature/new-api
cd ../myapp-feature
# 2. 开发功能
# ... 修改、提交 ...
# 3. 推送并创建 PR
git push -u origin feature/new-api
gh pr create --title "Add new API" --body "..."
# 4. 切回主分支
cd ../myapp
# 5. 合并后清理
git worktree remove ../myapp-feature
git branch -d feature/new-api
隔离运行测试
# 为测试运行创建 worktree(不影响主仓库)
git worktree add ../myapp-tests -b test/run
cd ../myapp-tests
[运行项目测试]
cd ../myapp
git worktree remove ../myapp-tests
故障排查
失效的 worktree
# 列出所有 worktree,包括失效的
git worktree list --verbose
# 清理失效引用
git worktree prune
# 若 prune 无效,手动删除
rm -rf ../path-to-stale-worktree
git worktree prune
worktree 无法移除
# 含未提交更改时强制移除
git worktree remove --force ../project-feature
# 若仍失败,手动移除
rm -rf ../project-feature
git worktree prune
限制
该技能未提供关于收费、价格、平台支持范围或性能效果的信息。