git-worktree by everyinc/compound-engineering-plugin
npx skills add https://github.com/everyinc/compound-engineering-plugin --skill git-worktree此技能为您的开发工作流提供了统一的 Git 工作树管理界面。无论您是进行独立的 PR 审查还是并行处理功能,此技能都能处理所有复杂性。
切勿直接调用 git worktree add。 请始终使用 worktree-manager.sh 脚本。
该脚本处理原始 git 命令无法处理的关键设置:
.env、.env.local、.env.test 等文件广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
.worktrees 目录在 .gitignore 中# ✅ 正确 - 始终使用脚本
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh create feature-name
# ❌ 错误 - 切勿直接执行此操作
git worktree add .worktrees/feature-name -b feature-name main
在以下场景中使用此技能:
/ce:review):如果当前不在目标分支(PR 分支或请求的分支)上,则提供用于独立审查的工作树/ce:work):始终询问用户是希望使用并行工作树还是直接在分支上工作此技能会自动从 /ce:review 和 /ce:work 命令调用:
# 用于审查:如果不在 PR 分支上,则提供工作树
# 用于开发:始终询问 - 新分支还是工作树?
您也可以直接从 bash 调用此技能:
# 创建新工作树(自动复制 .env 文件)
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh create feature-login
# 列出所有工作树
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh list
# 切换到某个工作树
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh switch feature-login
# 将 .env 文件复制到现有工作树(如果之前未复制)
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh copy-env feature-login
# 清理已完成的工作树
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh cleanup
create <branch-name> [from-branch]使用给定的分支名称创建一个新的工作树。
选项:
branch-name(必需):新分支和工作树的名称from-branch(可选):创建分支的基准分支(默认为 main)示例:
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh create feature-login
执行过程:
main、develop、dev、trunk、staging、release/*)与自身进行比较.envrc 可能引用未经检查的文件list 或 ls列出所有可用的工作树及其分支和当前状态。
示例:
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh list
输出显示:
switch <name> 或 go <name>切换到现有的工作树并进入其目录。
示例:
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh switch feature-login
可选:
cleanup 或 clean交互式清理非活动工作树,并请求确认。
示例:
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh cleanup
执行过程:
# Claude Code 识别到您不在 PR 分支上
# 提供选项:"使用工作树进行独立审查?(y/n)"
# 您回答:yes
# 脚本运行(自动复制 .env 文件):
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh create pr-123-feature-name
# 您现在位于用于审查的独立工作树中,并拥有所有环境变量
cd .worktrees/pr-123-feature-name
# 审查完成后,返回主目录:
cd ../..
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh cleanup
# 对于第一个功能(复制 .env 文件):
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh create feature-login
# 稍后,开始第二个功能(也复制 .env 文件):
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh create feature-notifications
# 列出您拥有的工作树:
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh list
# 根据需要切换:
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh switch feature-login
# 完成后返回主目录并清理:
cd .
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh cleanup
/ce:review并非总是创建工作树:
1. 检查当前分支
2. 如果**已经**在目标分支(PR 分支或请求的分支)上 → 保持原状,无需工作树
3. 如果**不同**于审查目标分支 → 提供工作树:
"使用工作树进行独立审查?(y/n)"
- 是 → 调用 git-worktree 技能
- 否 → 在当前分支上继续 PR 差异比较
/ce:work始终提供选择:
1. 询问:"您希望如何工作?
1. 在当前工作树上创建新分支(实时工作)
2. 工作树(并行工作)"
2. 如果选择 1 → 正常创建新分支
3. 如果选择 2 → 调用 git-worktree 技能从 main 分支创建
如果看到此消息,脚本将询问您是否要切换到该工作树。
首先切换出该工作树(返回主仓库),然后清理:
cd $(git rev-parse --show-toplevel)
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh cleanup
查看当前位置:
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh list
如果工作树创建时没有 .env 文件(例如,通过原始的 git worktree add),请复制它们:
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh copy-env feature-name
导航回主目录:
cd $(git rev-parse --show-toplevel)
.worktrees/
├── feature-login/ # 工作树 1
│ ├── .git
│ ├── app/
│ └── ...
├── feature-notifications/ # 工作树 2
│ ├── .git
│ ├── app/
│ └── ...
└── ...
.gitignore (已更新以包含 .worktrees)
git worktree add 创建独立环境每周安装次数
280
仓库
GitHub 星标数
10.9K
首次出现时间
Jan 21, 2026
安全审计
安装于
opencode243
codex241
gemini-cli236
claude-code236
github-copilot221
cursor219
This skill provides a unified interface for managing Git worktrees across your development workflow. Whether you're reviewing PRs in isolation or working on features in parallel, this skill handles all the complexity.
NEVER callgit worktree add directly. Always use the worktree-manager.sh script.
The script handles critical setup that raw git commands don't:
.env, .env.local, .env.test, etc. from main repo.worktrees is in .gitignore# ✅ CORRECT - Always use the script
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh create feature-name
# ❌ WRONG - Never do this directly
git worktree add .worktrees/feature-name -b feature-name main
Use this skill in these scenarios:
/ce:review): If NOT already on the target branch (PR branch or requested branch), offer worktree for isolated review/ce:work): Always ask if user wants parallel worktree or live branch workThe skill is automatically called from /ce:review and /ce:work commands:
# For review: offers worktree if not on PR branch
# For work: always asks - new branch or worktree?
You can also invoke the skill directly from bash:
# Create a new worktree (copies .env files automatically)
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh create feature-login
# List all worktrees
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh list
# Switch to a worktree
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh switch feature-login
# Copy .env files to an existing worktree (if they weren't copied)
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh copy-env feature-login
# Clean up completed worktrees
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh cleanup
create <branch-name> [from-branch]Creates a new worktree with the given branch name.
Options:
branch-name (required): The name for the new branch and worktreefrom-branch (optional): Base branch to create from (defaults to main)Example:
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh create feature-login
What happens:
main, develop, dev, trunk, staging, release/*) compare against themselves.envrc can source unchecked fileslist or lsLists all available worktrees with their branches and current status.
Example:
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh list
Output shows:
switch <name> or go <name>Switches to an existing worktree and cd's into it.
Example:
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh switch feature-login
Optional:
cleanup or cleanInteractively cleans up inactive worktrees with confirmation.
Example:
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh cleanup
What happens:
# Claude Code recognizes you're not on the PR branch
# Offers: "Use worktree for isolated review? (y/n)"
# You respond: yes
# Script runs (copies .env files automatically):
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh create pr-123-feature-name
# You're now in isolated worktree for review with all env vars
cd .worktrees/pr-123-feature-name
# After review, return to main:
cd ../..
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh cleanup
# For first feature (copies .env files):
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh create feature-login
# Later, start second feature (also copies .env files):
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh create feature-notifications
# List what you have:
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh list
# Switch between them as needed:
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh switch feature-login
# Return to main and cleanup when done:
cd .
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh cleanup
/ce:reviewInstead of always creating a worktree:
1. Check current branch
2. If ALREADY on target branch (PR branch or requested branch) → stay there, no worktree needed
3. If DIFFERENT branch than the review target → offer worktree:
"Use worktree for isolated review? (y/n)"
- yes → call git-worktree skill
- no → proceed with PR diff on current branch
/ce:workAlways offer choice:
1. Ask: "How do you want to work?
1. New branch on current worktree (live work)
2. Worktree (parallel work)"
2. If choice 1 → create new branch normally
3. If choice 2 → call git-worktree skill to create from main
If you see this, the script will ask if you want to switch to it instead.
Switch out of the worktree first (to main repo), then cleanup:
cd $(git rev-parse --show-toplevel)
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh cleanup
See where you are:
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh list
If a worktree was created without .env files (e.g., via raw git worktree add), copy them:
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh copy-env feature-name
Navigate back to main:
cd $(git rev-parse --show-toplevel)
.worktrees/
├── feature-login/ # Worktree 1
│ ├── .git
│ ├── app/
│ └── ...
├── feature-notifications/ # Worktree 2
│ ├── .git
│ ├── app/
│ └── ...
└── ...
.gitignore (updated to include .worktrees)
git worktree add for isolated environmentsWeekly Installs
280
Repository
GitHub Stars
10.9K
First Seen
Jan 21, 2026
Security Audits
Gen Agent Trust HubWarnSocketPassSnykWarn
Installed on
opencode243
codex241
gemini-cli236
claude-code236
github-copilot221
cursor219
agent-browser 浏览器自动化工具 - Vercel Labs 命令行网页操作与测试
140,500 周安装