SuperAPI AI 工具集

worktree-status

通用与其它

查看项目

更新于 10-16 01:19

技能介绍

用途:审计当前项目所有 git worktree,报告各工作树的脏状态与合并状态,回答“哪些分支已合并”“哪些有未提交改动”“哪些可以清理”等问题。适用于批量清理 worktree 前核对,避免丢失未提交工作。

主要能力与步骤:

  1. 状态检查前必须拉取最新 main:cd "$(git rev-parse --show-toplevel)" && git pull origin main。不执行会导致合并判断过期。
  2. 遍历 git worktree list --porcelain 收集信息,输出每个 worktree 的名称、分支、是否干净(clean/DIRTY)以及是否已合并进 origin/main;若 DIRTY 则列出 git status --short 内容。
  3. 检测 squash 合并:该项目仅使用 squash 合并,git merge-base --is-ancestor 无法识别 squash 合并的分支,需对显示“not merged”的分支做内容差异核对——先取 merge-base,列出该分支改动的文件,再逐个与 main 比较;全部一致即为已 squash 合并。注意不要使用 git diff origin/main <branch> 直接比较两个顶端,否则会产生假差异。
  4. 可选检查关联 tmux 会话(如 tmux ls | grep -E 'codex-worker|<other-pattern>'),仅在 tmux 可用且相关时执行。
  5. 结果必须以 Markdown 表格呈现,每行一个 worktree,包含 Worktree、Branch、Dirty、Merged、Can clean? 等列;Dirty 用 ✅ clean 或 ⚠️ N files,Merged 用 ✅ merged / ✅ squash-merged / ❌ not merged / n/a,仅当已合并(含 squash 合并)且干净时 Can clean? 为 ✅。
  6. 清理仅在用户明确批准后进行,对每个 worktree 执行 git worktree remove "/path/to/$NAME",并视需要 git branch -D "<branch>"。

限制:不执行未经用户批准的清理;未提供具体平台、收费或价格信息。