关于 worktree
worktree 是用于创建和管理 Git worktree 的命令行技能,并为运行开发服务器做好准备。它会初始化子模块、复制主 worktree 的 .env 文件,并使用 pnpm 安装依赖。
主要功能
- 01为分支创建 worktree
- 02初始化 Git 子模块
- 03复制 .env 文件
- 04使用 pnpm 安装依赖
- 05列出和移除 worktree
适用场景
- 01为新功能创建 worktree
- 02准备现有分支进行开发
- 03列出现有 worktree
- 04开发完成后移除 worktree
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ civitai/ civitai --skill worktree安装后在 Claude Code 中输入/worktree确认已加载。
附带文件cli.mjs
详细介绍
Worktree 设置技能
创建并完成运行开发服务器所需的所有设置。自动处理繁琐的设置步骤,让你可以立即开始工作。
快速开始
# Create a worktree for a new branch
node .claude/skills/worktree/cli.mjs create feature/my-feature
# Create a worktree for an existing branch
node .claude/skills/worktree/cli.mjs create existing-branch
# List all worktrees
node .claude/skills/worktree/cli.mjs list
# Remove a worktree
node .claude/skills/worktree/cli.mjs remove feature/my-feature
功能说明
创建 worktree 时,该技能会:
- 创建 git worktree,路径为
../model-share-<branch-name>(分支名称中的斜杠会替换为连字符) - 初始化 git 子模块(
git submodule update --init --recursive)——event-engine-common必须执行此步骤 - 将主 worktree 中的
.env复制到新 worktree - 运行
pnpm install安装依赖(利用 pnpm 的内容寻址存储,加快安装速度)
CLI 命令
| 命令 | 说明 |
|---|---|
create <branch> | 为指定分支创建新的 worktree |
list | 列出所有 worktree |
remove <branch> | 移除 worktree(删除目录并清理 git worktree) |
示例
# Create worktree for a new feature
node .claude/skills/worktree/cli.mjs create feature/user-auth
# Creates: ../model-share-feature-user-auth
# Create worktree for a bugfix
node .claude/skills/worktree/cli.mjs create fix/login-issue
# Creates: ../model-share-fix-login-issue
# Remove when done
node .claude/skills/worktree/cli.mjs remove fix/login-issue
将 Worktree 合并到 Main
当用户要求“合并 worktree”或“合并到 main”时,请按以下工作流操作:
-
在 worktree 中提交更改:
cd /path/to/worktree git add <files> git commit -m "feat/fix: description" -
更新并合并到 main:
cd /path/to/main-worktree git fetch origin && git checkout main && git pull origin main git merge <branch-name> --no-edit git push origin main -
清理 worktree 和分支:
# Remove the worktree directory (use --force if needed) rm -rf /path/to/worktree # Delete the local branch git branch -d <branch-name> # Optionally delete remote branch git push origin --delete <branch-name>
示例
# 1. Commit in worktree
cd ../model-share-fix-my-bug
git add src/file.ts
git commit -m "fix: resolve the bug"
# 2. Merge to main
cd ../model-share
git fetch origin && git checkout main && git pull origin main
git merge fix/my-bug --no-edit
git push origin main
# 3. Clean up
rm -rf ../model-share-fix-my-bug
git branch -d fix/my-bug
注意事项
- 分支名称中的斜杠会在目录名称中转换为连字符
.env文件会被复制(而非创建符号链接),因此你可以根据需要为每个 worktree 自定义环境- 使用 pnpm 的内容寻址存储,因此后续 worktree 的依赖安装速度很快
- 创建后,使用
/dev-server技能在新 worktree 中启动开发服务器
评论
支持 Markdown