Worktree Management 是一个用于管理 git worktree 的技能,主要面向由子智能体(subagents)为隔离目的创建的工作树。
用途 该技能用于集中管理子智能体创建的工作树,避免这些隔离分支长期堆积,并支持将完成的工作回收合并到主分支。
主要能力
- 列出工作树:执行 git worktree list 展示所有活跃工作树及其状态;对于位于 .worktrees/ 目录下的工作树,还会遍历目录并显示其最近 5 条提交记录。
- 清理过期工作树:通过 git worktree list --porcelain 筛选出 .worktrees/ 下的工作树路径并逐个执行 git worktree remove,随后执行 git worktree prune 清理失效条目。
- 合并工作成果:针对指定工作树,先获取其 HEAD 提交,然后用 git cherry-pick 挑选提交,或使用 git merge --no-ff 创建合并提交将工作整合进主工作树,合并成功后移除该工作树。
使用方式 命令格式为:/worktree-management [list|prune|merge]。
列表实现示例: git worktree list
for wt in .worktrees/*/; do if [ -d "$wt" ]; then echo "=== $(basename "$wt") ===" git -C "$wt" log --oneline -5 echo "" fi done
清理实现示例:
git worktree list --porcelain | grep "^worktree " | grep ".worktrees/" | while read -r line; do wt_path="${line#worktree }" git worktree remove "$wt_path" done
git worktree prune
合并实现示例: WORKTREE_NAME="agent-xxx" WORKTREE_BRANCH=$(git -C ".worktrees/${WORKTREE_NAME}" rev-parse HEAD)
git cherry-pick "${WORKTREE_BRANCH}"
或: git merge "${WORKTREE_BRANCH}" --no-ff -m "merge: integrate work from ${WORKTREE_NAME}"
清理: git worktree remove ".worktrees/${WORKTREE_NAME}"
适用场景 适用于使用子智能体在隔离工作树中并行开发、且需要定期查看、回收或清理这些工作树的 Git 工作流。
限制 资料未提供关于平台、收费、价格或效果等方面的信息;上述功能范围仅限于所描述的三个操作(list、prune、merge)。