Git工作树管理Skill git-worktrees-worktree-management

这个技能用于管理Git版本控制中的工作树,帮助开发者高效地列出活动工作树、清理陈旧工作树以及将工作合并回主分支,提高开发工作流的自动化水平。关键词:Git工作树管理, DevOps, 版本控制, 代码合并, 自动化工具。

DevOps 0 次安装 0 次浏览 更新于 3/25/2026

name: git-worktrees-worktree-management description: 管理Git工作树 - 列出活动工作树、清理陈旧工作树,并将工作合并回主分支。 allowed-tools:

  • Bash
  • Read
  • Glob
  • Grep

工作树管理

名称

git-worktrees:worktree-management - 管理由子代理创建的Git工作树

概要

/worktree-management [list|prune|merge]

描述

管理由子代理创建用于隔离的Git工作树。提供命令来列出活动工作树、清理陈旧工作树,并将完成的工作合并回当前分支。

实现

列出工作树

显示所有活动工作树及其状态:

git worktree list

对于在 .worktrees/ 目录中的工作树,同时显示其提交状态:

for wt in .worktrees/*/; do
  if [ -d "$wt" ]; then
    echo "=== $(basename "$wt") ==="
    git -C "$wt" log --oneline -5
    echo ""
  fi
done

清理陈旧工作树

移除不再需要的工作树:

# 移除所有在 .worktrees/ 中的工作树
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

合并工作回主分支

将特定工作树的工作合并到当前分支:

  1. 识别工作树及其提交
  2. 将提交cherry-pick或合并到主工作树中
  3. 成功合并后移除工作树
# 从主工作树:
WORKTREE_NAME="agent-xxx"
WORKTREE_BRANCH=$(git -C ".worktrees/${WORKTREE_NAME}" rev-parse HEAD)

# Cherry-pick 提交
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 worktree list
/path/to/repo                  abc1234 [main]
/path/to/repo/.worktrees/agent-1707123456-12345  def5678 (detached HEAD)
/path/to/repo/.worktrees/agent-1707123789-67890  ghi9012 (detached HEAD)

=== agent-1707123456-12345 ===
def5678 feat: 实现用户认证
abc1234 初始提交

=== agent-1707123789-67890 ===
ghi9012 fix: 解决数据库连接问题
abc1234 初始提交

用户: 合并认证工作树并清理

代理: Cherry-picks 认证提交,移除工作树,并清理陈旧条目。