mcpField
W
worktree

worktree

github.com/civitai开发7.3k59 次安装今天更新
代码仓库

关于 worktree

worktree 是用于创建和管理 Git worktree 的命令行技能,并为运行开发服务器做好准备。它会初始化子模块、复制主 worktree 的 .env 文件,并使用 pnpm 安装依赖。

主要功能

  1. 01为分支创建 worktree
  2. 02初始化 Git 子模块
  3. 03复制 .env 文件
  4. 04使用 pnpm 安装依赖
  5. 05列出和移除 worktree

适用场景

  1. 01为新功能创建 worktree
  2. 02准备现有分支进行开发
  3. 03列出现有 worktree
  4. 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 时,该技能会:

  1. 创建 git worktree,路径为 ../model-share-<branch-name>(分支名称中的斜杠会替换为连字符)
  2. 初始化 git 子模块(git submodule update --init --recursive)——event-engine-common 必须执行此步骤
  3. 将主 worktree 中的 .env 复制到新 worktree
  4. 运行 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”时,请按以下工作流操作:

  1. 在 worktree 中提交更改:

    cd /path/to/worktree
    git add <files>
    git commit -m "feat/fix: description"
    
  2. 更新并合并到 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
    
  3. 清理 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