用途
git-worktree-clean 用于清理一个 Git worktree 分支:从 origin 拉取最新的仓库状态,并将工作树硬重置到目标分支,使工作区恢复到干净状态。
主要能力
- 从 origin 获取最新状态(git fetch origin)。
- 将工作树硬重置到目标分支,默认目标为 origin/latest,也可通过参数指定分支。
- 在重置前检测未提交的变更并给出警告。
- 重置后显示当前提交记录与工作区状态,确认清理结果。
使用方式
命令格式:
/git-worktree-clean [branch]
参数:
- branch(可选):要重置到的目标分支。默认值:origin/latest
如果用户以 help 作为参数传入,命令会解释如何使用该命令及其前置条件,然后立即退出,不执行后续流程。
工作流程
- 验证环境:检查当前目录是否为 Git 工作树(git rev-parse --is-inside-work-tree);检查是否存在未提交的变更(git status --porcelain),若存在则输出警告并列出变更文件,并停止执行、等待用户确认。
- 获取最新状态:执行 git fetch origin。
- 硬重置到目标:若未提供参数,TARGET_BRANCH 默认为 origin/latest;执行 git reset --hard "$TARGET_BRANCH"。
- 验证干净状态:执行 git log --oneline -1 与 git status,展示当前状态。
完成标准
- 工作树是干净的。
- HEAD 与目标分支一致。
- 用户已被告知重置结果。
前置条件
- 必须可用 Git CLI。
- 工作目录应当是一个 Git worktree(而非主仓库)。
- 不应存在关键性的未提交变更——若工作区不干净,需向用户发出警告。
适用场景
- 在多个 worktree 中并行开发后,需要将某个工作树快速恢复为远端分支的干净状态。
- 需要丢弃工作树中的本地改动并同步到指定分支时。
限制与注意事项
- 该命令使用 git reset --hard,会丢弃未提交的变更;资料中明确要求在检测到未提交变更时先停止并等待用户确认。
- 资料未提供收费、价格、平台支持范围等信息,暂未提供。