返回顶部
u

using-git-worktrees使用Git工作树

Use when starting feature work that needs isolation from current workspace or before executing implementation plans - creates isolated git worktrees with smart directory selection and safety verification

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 0.1.0
安全检测
已通过
1,246
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

using-git-worktrees

使用 Git Worktrees

概述

Git worktrees 创建共享同一仓库的独立工作区,允许在不切换分支的情况下同时处理多个分支。

核心原则: 系统化目录选择 + 安全验证 = 可靠隔离。

开始时声明: 我正在使用 using-git-worktrees 技能来设置一个隔离的工作区。

目录选择流程

按以下优先级顺序执行:

1. 检查现有目录

bash

按优先级顺序检查


ls -d .worktrees 2>/dev/null # 首选(隐藏目录)
ls -d worktrees 2>/dev/null # 备选

如果找到: 使用该目录。如果两者都存在,优先使用 .worktrees。

2. 检查 CLAUDE.md

bash
grep -i worktree.*director CLAUDE.md 2>/dev/null

如果指定了偏好: 直接使用,无需询问。

3. 询问用户

如果目录不存在且 CLAUDE.md 中未指定偏好:

未找到 worktree 目录。应在何处创建 worktrees?

  1. 1. .worktrees/(项目本地,隐藏目录)
  2. ~/.config/superpowers/worktrees/<项目名称>/(全局位置)

您更倾向于哪个选项?

安全验证

对于项目本地目录(.worktrees 或 worktrees)

在创建 worktree 之前必须验证目录是否被忽略:

bash

检查目录是否被忽略(尊重本地、全局和系统 gitignore)


git check-ignore -q .worktrees 2>/dev/null || git check-ignore -q worktrees 2>/dev/null

如果未被忽略:

根据 Jesse 的规则立即修复损坏的问题:

  1. 1. 在 .gitignore 中添加相应行
  2. 提交更改
  3. 继续创建 worktree

为什么关键: 防止意外将 worktree 内容提交到仓库。

对于全局目录(~/.config/superpowers/worktrees)

无需 .gitignore 验证——完全在项目之外。

创建步骤

1. 检测项目名称

bash
project=$(basename $(git rev-parse --show-toplevel))

2. 创建 Worktree

bash

确定完整路径


case $LOCATION in
.worktrees|worktrees)
path=$LOCATION/$BRANCH_NAME
;;
~/.config/superpowers/worktrees/*)
path=~/.config/superpowers/worktrees/$project/$BRANCH_NAME
;;
esac

使用新分支创建 worktree

git worktree add $path -b $BRANCH_NAME cd $path

3. 运行项目设置

自动检测并运行适当的设置:

bash

Node.js


if [ -f package.json ]; then npm install; fi

Rust

if [ -f Cargo.toml ]; then cargo build; fi

Python

if [ -f requirements.txt ]; then pip install -r requirements.txt; fi if [ -f pyproject.toml ]; then poetry install; fi

Go

if [ -f go.mod ]; then go mod download; fi

4. 验证干净的基线

运行测试以确保 worktree 从干净状态开始:

bash

示例——使用项目适当的命令


npm test
cargo test
pytest
go test ./...

如果测试失败: 报告失败,询问是继续还是调查。

如果测试通过: 报告就绪。

5. 报告位置

Worktree 已就绪,位于 <完整路径>
测试通过( 个测试,0 个失败)
已准备好实现 <功能名称>

快速参考

情况操作
.worktrees/ 存在使用它(验证已忽略)
worktrees/ 存在
使用它(验证已忽略) | | 两者都存在 | 使用 .worktrees/ | | 两者都不存在 | 检查 CLAUDE.md → 询问用户 | | 目录未被忽略 | 添加到 .gitignore + 提交 | | 基线测试失败 | 报告失败 + 询问 | | 没有 package.json/Cargo.toml | 跳过依赖安装 |

常见错误

跳过忽略验证

  • - 问题: Worktree 内容被跟踪,污染 git 状态
  • 修复: 在创建项目本地 worktree 之前始终使用 git check-ignore

假设目录位置

  • - 问题: 造成不一致,违反项目约定
  • 修复: 遵循优先级:现有 > CLAUDE.md > 询问

在测试失败时继续

  • - 问题: 无法区分新错误和已有问题
  • 修复: 报告失败,获得明确许可后再继续

硬编码设置命令

  • - 问题: 在使用不同工具的项目上失效
  • 修复: 从项目文件自动检测(package.json 等)

示例工作流程

您:我正在使用 using-git-worktrees 技能来设置一个隔离的工作区。

[检查 .worktrees/ - 存在]
[验证已忽略 - git check-ignore 确认 .worktrees/ 已被忽略]
[创建 worktree:git worktree add .worktrees/auth -b feature/auth]
[运行 npm install]
[运行 npm test - 47 个通过]

Worktree 已就绪,位于 /Users/jesse/myproject/.worktrees/auth
测试通过(47 个测试,0 个失败)
已准备好实现 auth 功能

警示标志

绝不:

  • - 在未验证目录被忽略的情况下创建 worktree(项目本地)
  • 跳过基线测试验证
  • 在未询问的情况下继续处理失败的测试
  • 在模棱两可时假设目录位置
  • 跳过 CLAUDE.md 检查

始终:

  • - 遵循目录优先级:现有 > CLAUDE.md > 询问
  • 验证项目本地目录已被忽略
  • 自动检测并运行项目设置
  • 验证干净的测试基线

集成

被调用者:

  • - brainstorming(阶段 4)- 当设计被批准并需要实现时必需
  • subagent-driven-development - 执行任何任务前必需
  • executing-plans - 执行任何任务前必需
  • 任何需要隔离工作区的技能

配合使用:

  • - finishing-a-development-branch - 工作完成后清理时必需

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 using-git-worktrees-1776326658 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 using-git-worktrees-1776326658 技能

通过命令行安装

skillhub install using-git-worktrees-1776326658

下载

⬇ 下载 using-git-worktrees v0.1.0(免费)

文件大小: 2.9 KB | 发布时间: 2026-4-17 13:52

v0.1.0 最新 2026-4-17 13:52
Initial release: 使用 Git 工作树

Archiver·手机版·闲社网·闲社论坛·智能体自动化市场· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2026 闲社网·AI智能体论坛·AI自动化解决方案·http://xianshe.com

p2p_official_large
返回顶部