Token导航 LogoToken导航TokenDH.com
开发权限需确认github未标认证来源可访问许可证需确认审计通过

worktree工作树

Agent Skill

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

总安装

318

周安装

13

GitHub Stars

2

下载量

103
CodexClaudeCursorGemini CLI

安装说明

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

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

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

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

命令行安装

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

skills.shnpx skills
npx skills add https://github.com/ashe-li/agent-skills --skill worktree

简介

worktree 用于管理 Git worktree 的创建、状态查询与清理,统一存放路径为 Documents 目录。

  • 支持列出所有 worktree、关联 PR 状态与磁盘用量,并提供自动化清理与剪枝功能。
  • 通过 npx skills add 命令安装,需在 Git 仓库内使用,依赖 gh CLI 查询 Pull Request 信息。
  • 使用前请确认是否在正确仓库目录下,以及是否有权限执行 git 与 gh 相关命令。
  • worktree 属于开发类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

/worktree — Git Worktree 生命週期管理

管理 worktree 的建立、狀態查詢、清理。統一存放位置為 ~/Documents/<repo>-<name>

子指令解析

$ARGUMENTS 判斷子指令:

輸入子指令
(空)或 statusstatus
create <name>create
cleanupcleanup
pruneprune

共用:偵測 Repo 資訊

所有子指令開始前,先取得 repo 資訊:

REPO_ROOT=$(git rev-parse --show-toplevel)
REPO_NAME=$(basename "$REPO_ROOT")

若不在 git repo 中,提示使用者切換到 git repo 目錄。


status(預設)

列出所有 worktree 及其狀態。

步驟:

  1. git worktree list --porcelain 取得所有 worktree
  2. 排除 main worktree(即 REPO_ROOT 本身)
  3. 對每個 worktree:

- 取得路徑和分支名稱 - gh pr list --head <branch> --state all --json number,state,mergedAt --limit 1 查 PR 狀態 - du -sh <path> 取得磁碟用量 - 判斷路徑類型: - ~/Documents/<repo>-* → 標準路徑(無標記) - .claude/worktrees/[legacy] - /tmp//private/tmp/[non-standard] - 其他 → [non-standard]

  1. 一致性檢查(依據:DAMA-DMBOK Completeness — manifest vs. actual set difference):

- 對每個 git worktree list 回傳的路徑,執行 test -d <path> 確認目錄實際存在 - 若路徑在 git 清單中但目錄不存在 → 標記 [orphan],並在輸出最後顯示警告: ` 警告:偵測到 N 個孤立 worktree metadata(目錄已不存在但 git 仍有紀錄) 執行 /worktree prune 清理孤立 metadata。 `

輸出格式:

Repo: <repo-name>  |  Base: <current-branch>  |  N worktrees (+ main)

Path                                    Branch                          PR      State    Disk
─────────────────────────────────────────────────────────────────────────────────────────────
~/Documents/<repo>-<name>               worktree-<name>                 —       no PR    196M
~/Documents/<repo>-<name2>              feat/<name2>                    #1234   MERGED   1.8G
.claude/worktrees/<name3>               worktree-<name3>                #5678   OPEN     800M  [legacy]

Tip: 有 MERGED/CLOSED 的 PR → `/worktree cleanup`
Tip 行只在有可清理 worktree 時顯示。

create

建立新 worktree。

步驟:

  1. $ARGUMENTS 解析 name(create 後的部分)
  2. 計算路徑:~/Documents/<repo>-<name>
  3. 計算分支名:worktree-<name>
  4. 檢查路徑是否已存在(test -d)→ 已存在則提示並中止
  5. 檢查分支是否已存在(git branch --list)→ 已存在則提示並中止
  6. 使用 AskUserQuestion 詢問 base branch: 從哪個分支建立 worktree? **(目前分支) master 其他**(請指定)
  7. 建立 worktree: git worktree add -b worktree-<name> ~/Documents/<repo>-<name> <base-branch>
  8. 輸出結果: Worktree 已建立: - 路徑:~/Documents/<repo>-<name> - 分支:worktree-<name> - Base:<base-branch> 開新 Claude Code session 在該目錄開發: cd ~/Documents/<repo>-<name> && claude

cleanup

自動偵測並清理已 merge/closed PR 的 worktree。

步驟:

  1. git worktree list --porcelain 列出所有非 main worktree
  2. 對每個 worktree 判斷是否符合清理條件:

- 先執行 gh pr list --head <branch> --state all --json number,state,mergedAt --limit 1 查詢 PR 狀態 - 若 gh 指令失敗(非零 exit code)或回傳空結果 → PR 狀態標記為 [unknown]不靜默跳過,仍列入清理候選並在表格中顯示 [unknown](依據:ITIL CMDB Reconciliation — 查詢失敗需明確標記,不得隱式忽略) - PR 狀態為 MERGED 或 CLOSED → 符合清理條件 - PR 狀態為 [unknown] → 列入清理候選,表格標記 [unknown],讓使用者自行判斷 - 或無 PR 且分支已 merged into base(git branch --merged <base> | grep <branch>

  1. 對符合條件的 worktree,檢查髒目錄:

- git -C <path> status --porcelain 若有輸出 → 標記 [dirty] 並警告

  1. 若無可清理的 worktree → 提示「沒有需要清理的 worktree」並結束
  2. 顯示清理清單,使用 AskUserQuestion 確認: 以下 worktree 符合清理條件: Path Branch PR State Disk Note ~/Documents/- worktree- #1234 MERGED 800M.claude/worktrees/ worktree- — merged 200M [legacy] ~/Documents/- worktree- #5678 CLOSED 1.2G [dirty] ⚠️ 確認清理?(dirty worktree 將被跳過) 確認 — 清理上述 worktree(跳過 dirty) 全部清理 — 包含 dirty worktree(未 commit 變更將遺失) 取消
  3. 依使用者選擇執行: git worktree remove <path> git branch -d <branch> # 若分支已 merged
  4. 操作驗證(依據:DAMA-DMBOK Completeness — expected vs. actual count):

- 刪除後重新執行 git worktree list --porcelain,確認已刪除的路徑不再出現於列表 - 逐條對照清理清單(manifest): Path 預期結果 實際結果 ~/Documents/- 已移除 PASS / FAIL - 若任何路徑仍在列表中 → 輸出 [FAIL] 並提示手動執行 git worktree prune

  1. 報告結果: 已清理 N 個 worktree,回收 X 磁碟空間。 驗證:N/N 個 worktree 已從 git 列表移除。

prune

清理孤立 worktree metadata(worktree 目錄已被手動刪除但 git 紀錄仍在)。

步驟:

  1. git worktree list --porcelain 檢查每個 worktree 路徑是否存在
  2. 若有孤立 metadata,顯示清單
  3. 執行 git worktree prune
  4. 報告清理結果

設計原則

  • Repo-agnostic:用 git rev-parse 偵測 repo,不 hardcode
  • 命名慣例:路徑 ~/Documents/<repo>-<name>,分支 worktree-<name>
  • 確認閘門:cleanup/create 前都用 AskUserQuestion 等待確認
  • 髒目錄保護:cleanup 預設跳過有未 commit 變更的 worktree
  • Legacy 標記:status 輸出標記非標準路徑,鼓勵遷移至標準路徑
  • Manifest-driven 驗證:cleanup 後必須重新 list 比對(expected set ≡ actual set);status 交叉驗證 git metadata 與實際目錄(依據:DAMA-DMBOK Completeness)
  • Fail-explicitgh 查詢失敗時標記 [unknown],不靜默跳過(依據:ITIL CMDB Reconciliation)

适合场景

01

用户想查找某类 Agent Skill 时

02

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

03

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

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

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

能力 4

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

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

平台分布

Codex

36.09%
按下载量换算37

Claude

31.17%
按下载量换算32

Cursor

20.07%
按下载量换算21

Gemini CLI

9.94%
按下载量换算10

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

权限需确认

当前来源未能明确判断权限范围,默认进入异常复核队列。

安装前确认

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

来源信息

继续浏览同类 Skills