Token导航 LogoToken导航TokenDH.com
待分类只读github未标认证来源可访问许可证需确认审计通过

worktree工作树

Agent Skill

worktree 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

336

周安装

14

GitHub Stars

12

下载量

112
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:worktree(工作树)
来源仓库:https://github.com/walletconnect/skills
仓库路径:skills/worktree
安装命令:
npx skills add https://github.com/walletconnect/skills --skill worktree
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/walletconnect/skills --skill worktree

简介

用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中围绕仓库状态、代码变更或协作事项进行整理。
  • 通过 npx skills add 命令从指定仓库安装并使用。
  • 安装前需确认权限范围、维护状态,注意是否触发联网、命令执行或文件读写。
  • worktree 属于待分类类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Git Worktree Manager

Manages the full lifecycle of git worktrees: creation, monitoring, cleanup, and maintenance.

Subcommands

CommandAliasDescription
/worktree create <name>/worktree <name>Create new worktree with conventional branch naming
/worktree list/worktree lsShow all worktrees with status and branch info
/worktree remove <path>/worktree rmRemove worktree + cleanup branches
/worktree cleanup-Interactive batch removal of multiple worktrees
/worktree prune-Remove stale worktree references
/worktree lock <path>-Prevent worktree from being auto-pruned
/worktree unlock <path>-Allow worktree to be pruned again

Default: No subcommand or unrecognized arg = create

When to use

  • Creating isolated workspace for new feature/fix
  • Viewing all active worktrees across a repo
  • Cleaning up after merging PRs
  • Removing abandoned/stale worktrees
  • Protecting important worktrees on portable storage

When not to use

  • Simple branch switching (use git checkout)
  • Temporary file exploration (use git stash or read-only)
  • Submodule management (different concept)

Subcommand: create

Creates new worktree in sibling directory with conventional commit branch naming.

Workflow

  1. Get name: From args or ask user (e.g., "alerts", "fix-login")
  2. Prompt for type: Use AskUserQuestion

- Header: "Commit type" - Options: feat, fix, chore, docs, refactor, test, perf, ci

  1. Construct branch: {type}/{name} (e.g., feat/alerts)
  2. Determine path:

- Get repo name from remote/directory - Path: ../{repo}-{type}-{name} (slashes → hyphens)

  1. Create: git worktree add -b {branch} {path}
  2. Confirm: Show branch name, path, and cd command

Error handling

  • Branch exists → offer to use existing or suggest new name
  • Directory exists → warn and ask to proceed or rename
  • Dirty working tree → warn but allow (worktree add works regardless)

Subcommand: list

Shows all worktrees with status information.

Workflow

  1. Run: git worktree list -v
  2. Parse and display:

- Path - Branch name (or "detached HEAD") - Status flags: locked, prunable, bare - Commit SHA (short)

  1. Enhance (optional): For each worktree, show:

- Uncommitted changes count: git -C {path} status --porcelain | wc -l - Ahead/behind upstream: git -C {path} rev-list --left-right --count @{u}...HEAD

Example output

Worktrees for my-project:
  /path/to/main          [main]           clean, up-to-date
  /path/to/feat-alerts   [feat/alerts]    3 uncommitted, 2 ahead
  /path/to/old-feature   [fix/old]        prunable (directory missing)

Subcommand: remove

Removes single worktree with full branch cleanup.

Workflow

  1. Identify target: From args or show list and ask
  2. Check status: git -C {path} status --porcelain

- If uncommitted changes → warn and confirm force removal

  1. Get branch name for cleanup: git -C {path} branch --show-current
  2. Remove worktree: git worktree remove {path} # clean git worktree remove -f {path} # if uncommitted changes git worktree remove -ff {path} # if locked
  3. Delete local branch: git branch -d {branch} # safe (fails if unmerged) git branch -D {branch} # force (if user confirms)
  4. Offer remote branch deletion (AskUserQuestion):

- Check if remote exists: git ls-remote --heads origin {branch} - If yes, ask: "Delete remote branch too?" - If yes: git push origin --delete {branch}

  1. Confirm: Summarize what was removed

Safety checks

  • Never remove main worktree (the original repo)
  • Warn if branch has unpushed commits
  • Warn if PR is still open for this branch

Subcommand: cleanup

Interactive batch removal of multiple worktrees.

Workflow

  1. List all worktrees: git worktree list --porcelain
  2. Filter candidates:

- Exclude main worktree - Flag: prunable, merged branches, old (no commits in 2+ weeks)

  1. Present selection (AskUserQuestion with multiSelect):

- Header: "Cleanup" - Question: "Which worktrees should be removed?" - Options: List each non-main worktree with status

  1. For each selected: Run remove workflow
  2. Run prune: git worktree prune -v
  3. Summary: Show what was cleaned up

Subcommand: prune

Removes stale worktree administrative files.

Workflow

  1. Preview: git worktree prune -n -v
  2. If stale entries found:

- Show what will be pruned - Confirm with user

  1. Prune: git worktree prune -v
  2. Report: Show removed entries

When to use

  • After manually deleting worktree directories
  • After moving worktree without git worktree move
  • Periodic maintenance

Subcommand: lock / unlock

Protects worktree from automatic pruning.

Lock workflow

  1. Identify worktree: From args or list and ask
  2. Prompt for reason (optional):

- "Why lock this worktree?" (e.g., "portable drive", "long-running experiment")

  1. Lock: git worktree lock --reason "{reason}" {path} # or without reason: git worktree lock {path}
  2. Confirm: Show locked status

Unlock workflow

  1. Identify worktree: From args or list locked ones
  2. Unlock: git worktree unlock {path}
  3. Confirm: Show unlocked status

Validation checklist

  • Correct subcommand identified from args
  • Branch naming follows {type}/{name} convention
  • Worktree path is sibling directory, not nested
  • No uncommitted changes lost without warning
  • Local branch deleted only after worktree removal
  • Remote branch deletion is opt-in, not automatic
  • Main worktree protected from removal
  • Prune only runs after user confirmation

Examples

Example 1: Create

User: /worktree queue-alerts
Claude: [asks commit type] → User: feat
Claude: Created worktree
  Branch: feat/queue-alerts
  Path: ../my-project-feat-queue-alerts
  Run: cd ../my-project-feat-queue-alerts

Example 2: List

User: /worktree list
Claude: Worktrees for my-project:
  /Users/me/my-project              [main]           clean
  /Users/me/my-project-feat-alerts  [feat/alerts]    2 uncommitted
  /Users/me/my-project-fix-bug      [fix/bug-123]    prunable

Example 3: Remove with cleanup

User: /worktree remove ../my-project-feat-alerts
Claude: Worktree has 2 uncommitted changes. Force remove?
User: yes
Claude: [asks about remote branch deletion] → User: yes
Claude: Removed:
  - Worktree: ../my-project-feat-alerts
  - Local branch: feat/alerts
  - Remote branch: origin/feat/alerts

Example 4: Interactive cleanup

User: /worktree cleanup
Claude: [shows multiselect with 3 worktrees]
User: [selects 2]
Claude: Removed 2 worktrees, pruned 1 stale entry
  - feat/old-feature (merged)
  - fix/abandoned (no remote)

Notes

  • Worktrees share git objects but have separate working directories
  • Each worktree can have different branch checked out simultaneously
  • Locked worktrees survive git gc and won't be auto-pruned
  • Use git worktree move to relocate (not manual mv)
  • See WORKFLOWS.md for detailed step-by-step procedures

Evaluation Prompts

Test 1: Activation - create (should trigger)

User: /worktree new-dashboard
Expected: Skill activates, asks for commit type, creates worktree

Test 2: Activation - list (should trigger)

User: /worktree list
Expected: Skill activates, runs git worktree list, shows formatted output

Test 3: Activation - cleanup (should trigger)

User: /worktree cleanup
Expected: Skill activates, lists worktrees with multiselect, processes removals

Test 4: Activation - natural language (should trigger)

User: I need to clean up my old worktrees
Expected: Skill activates with cleanup subcommand context

Test 5: Non-activation (should NOT trigger)

User: How do I switch to a different branch?
Expected: Normal response about git checkout/switch, NOT worktree skill

Test 6: Non-activation (should NOT trigger)

User: Delete the feature-x branch
Expected: Normal git branch -d advice, NOT worktree removal

Test 7: Edge case - remove main worktree

User: /worktree remove .
Expected: Skill refuses with clear error "Cannot remove main worktree"

Test 8: Edge case - remove with uncommitted changes

User: /worktree remove ../project-feat-wip
Context: Worktree has uncommitted changes
Expected: Warning shown, asks for confirmation before force removal

Test 9: Edge case - no worktrees to cleanup

User: /worktree cleanup
Context: Only main worktree exists
Expected: "No worktrees available for cleanup" message

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

34.77%
按下载量换算39

Claude

29.71%
按下载量换算33

Cursor

19.52%
按下载量换算22

Gemini CLI

8.67%
按下载量换算10

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills