using-git-worktrees
在开始需要与当前工作区隔离的功能开发时,或在执行实施计划前使用——创建独立的Git工作树,具备智能目录选择和安全验证功能。
作者
分类
开发工具安装
下载并解压到你的 skills 目录
复制命令,发送给 OpenClaw 自动安装:
Using Git Worktrees - 智能隔离工作区管理技能
技能概述
Using Git Worktrees 是一个 Superpowers 技能,用于在开始功能开发前创建隔离的 Git 工作区,通过系统化目录选择和安全验证实现可靠的多分支并行开发。
适用场景
当你需要开发一个新功能,且希望与当前工作区保持隔离时,此技能会自动选择合适的目录、创建 worktree、运行项目设置并验证测试基线,确保你在一个干净的环境中开始工作。
在使用 executing-plans 或 subagent-driven-development 技能执行实现计划前,使用此技能创建隔离的 worktree,避免与主分支或其他工作产生冲突,是 brainstorming 技能第四阶段的推荐配套操作。
当你需要同时在多个分支上工作(如同时开发功能 A、修复 Bug B、审查代码 C),而不希望频繁切换分支或使用多个仓库克隆时,worktree 让你可以在同一仓库的不同目录中并行工作。
核心功能
技能按照优先级自动选择 worktree 目录:首先检查现有的 .worktrees/ 或 worktrees/ 目录,其次检查 CLAUDE.md 中的配置偏好,最后询问用户选择项目本地或全局位置。这确保了目录选择的一致性和可预测性。
在创建项目本地 worktree 之前,自动验证目录是否被 .gitignore 忽略,防止意外将 worktree 内容提交到仓库。如果发现目录未被忽略,会自动添加到 .gitignore 并提交更改,遵循"立即修复损坏的东西"原则。
创建 worktree 后,自动检测项目类型(Node.js、Rust、Python、Go 等)并运行相应的依赖安装命令,然后执行测试以验证干净的基线。如果测试失败,会报告情况并询问是否继续,确保你了解起始状态。
常见问题
Git worktree 和传统的分支切换有什么区别?
Git worktree 允许你在同一仓库的多个目录中同时检出不同分支,无需切换分支或使用 git stash。每个 worktree 都有独立的工作目录和暂存区,但共享同一个 Git 仓库对象数据库。这意味着你可以同时在多个分支上工作,互不干扰,而传统的分支切换需要先提交或暂存当前更改。
使用 worktree 时需要注意哪些安全事项?
最关键的是确保 worktree 目录被 .gitignore 忽略,否则 worktree 的内容可能会被 Git 跟踪,污染 git status 并可能导致意外提交。此技能会在创建 worktree 前自动运行 git check-ignore 进行验证。另外,建议在创建后运行测试验证基线,以便在出现问题时能区分是新引入的 bug 还是预存问题。
worktree 应该放在项目内还是全局目录?
这取决于你的团队和工作风格。项目本地目录(如 .worktrees/)便于团队协作和 CI/CD 集成,但需要确保被 .gitignore 忽略。全局目录(如 ~/.config/superpowers/worktrees/<project>/)完全独立于项目,适合个人开发或不想污染项目目录的情况。此技能会优先检测现有目录和 CLAUDE.md 配置,保持一致性,没有偏好时会询问你的选择。