关于 update-base-branch
用于仓库工作流的技能,可将当前 worktree 切换到预期基分支并安全更新。它会检查分支和上游配置是否明确,保护本地改动,并且只允许快进更新。
主要功能
- 01检查分支、状态和 worktree
- 02确定基分支及上游
- 03遇到歧义或本地提交时停止
- 04确认目标后才执行 fetch
- 05切换并快进更新当前 worktree
- 06核验分支、提交、上游和工作区状态
适用场景
- 01根据配置的上游更新 worktree
- 02避免更新分支时丢失未提交改动
- 03处理多个候选基分支或远程仓库
- 04确认 worktree 与已获取的上游一致
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ sjunepark/ agent-scripts --skill update-base-branch安装后在 Claude Code 中输入/update-base-branch确认已加载。
附带文件agents/openai.yamlevals/evals.json
详细介绍
更新基准分支
将当前工作树切换到预期的基准分支并更新它,同时不丢弃工作,也不在分支、远程或工作树存在歧义时自行猜测。
保护当前工作树
检查分支、状态和工作树。如果工作树有未提交的更改,只读评估目标分支和上游分支,然后报告歧义,并请用户提交或暂存本地更改。只有在确认工作树干净后,才能获取或切换分支;绝不自动暂存。
确定目标分支
- 检查本地分支、远程分支和上游配置。
- 使用用户指定的分支。否则,如果仓库证据明确,则选择当前工作树已确定的基准分支或集成分支。将可用的
dev分支视为通常的默认候选,但这并不意味着可以忽略相互冲突的证据。 - 如果目标仍有歧义,请询问用户要使用哪个分支,并列出可能的候选分支及其上游。
- 操作范围仅限当前工作树。如果目标分支已在另一工作树中检出,请询问用户是否改用适用于当前工作树的基准分支,或告知用户在该分支所属的工作树中运行操作。不要擅自更新其他工作树。
确定上游
- 确定所选本地分支配置的上游。不要假设远程名称为
origin。 - 如果分支没有上游,或多个远程上都存在同名分支且无法明确选择,请询问用户应以哪个远程分支为准。
- 绝不通过重置、强制切换、删除或改写提交来追上远程分支的最新提交。
更新分支
- 只有在确定目标分支和权威远程后,才能获取更新。
- 切换之前,确认所选本地分支是已获取的上游分支的祖先。如果本地分支包含上游中没有的提交,无论是领先还是已分叉,都应停止并报告双方的提交情况,不要自行选择如何协调。
- 将当前工作树切换到所选本地分支。如果用户选择的分支仅存在于远程,则创建对应的本地跟踪分支,且不得覆盖现有引用。
- 将本地分支快进到已获取的上游分支。必须仅允许快进更新。
- 验证以下各项:
- 当前工作树位于所选分支;
- 其上游是已确定的远程分支;
- 本地
HEAD与已获取的上游分支最新提交一致;并且 - 工作树保持干净。
报告分支、上游和最终提交。如果任何一项验证失败,请报告确切状态,不要声称操作已完成。
评论
支持 Markdown