SuperAPI AI 工具集

git-worktree

编程与开发

查看项目

更新于 10-16 05:32

技能介绍

用途

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

限制

该技能未提供关于收费、价格、平台支持范围或性能效果的信息。