mcpField
U
update-base-branch

update-base-branch

github.com/sjunepark开发147 次安装4 周前更新
代码仓库

关于 update-base-branch

用于仓库工作流的技能,可将当前 worktree 切换到预期基分支并安全更新。它会检查分支和上游配置是否明确,保护本地改动,并且只允许快进更新。

主要功能

  1. 01检查分支、状态和 worktree
  2. 02确定基分支及上游
  3. 03遇到歧义或本地提交时停止
  4. 04确认目标后才执行 fetch
  5. 05切换并快进更新当前 worktree
  6. 06核验分支、提交、上游和工作区状态

适用场景

  1. 01根据配置的上游更新 worktree
  2. 02避免更新分支时丢失未提交改动
  3. 03处理多个候选基分支或远程仓库
  4. 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

详细介绍

更新基准分支

将当前工作树切换到预期的基准分支并更新它,同时不丢弃工作,也不在分支、远程或工作树存在歧义时自行猜测。

保护当前工作树

检查分支、状态和工作树。如果工作树有未提交的更改,只读评估目标分支和上游分支,然后报告歧义,并请用户提交或暂存本地更改。只有在确认工作树干净后,才能获取或切换分支;绝不自动暂存。

确定目标分支

  1. 检查本地分支、远程分支和上游配置。
  2. 使用用户指定的分支。否则,如果仓库证据明确,则选择当前工作树已确定的基准分支或集成分支。将可用的 dev 分支视为通常的默认候选,但这并不意味着可以忽略相互冲突的证据。
  3. 如果目标仍有歧义,请询问用户要使用哪个分支,并列出可能的候选分支及其上游。
  4. 操作范围仅限当前工作树。如果目标分支已在另一工作树中检出,请询问用户是否改用适用于当前工作树的基准分支,或告知用户在该分支所属的工作树中运行操作。不要擅自更新其他工作树。

确定上游

  1. 确定所选本地分支配置的上游。不要假设远程名称为 origin。
  2. 如果分支没有上游,或多个远程上都存在同名分支且无法明确选择,请询问用户应以哪个远程分支为准。
  3. 绝不通过重置、强制切换、删除或改写提交来追上远程分支的最新提交。

更新分支

  1. 只有在确定目标分支和权威远程后,才能获取更新。
  2. 切换之前,确认所选本地分支是已获取的上游分支的祖先。如果本地分支包含上游中没有的提交,无论是领先还是已分叉,都应停止并报告双方的提交情况,不要自行选择如何协调。
  3. 将当前工作树切换到所选本地分支。如果用户选择的分支仅存在于远程,则创建对应的本地跟踪分支,且不得覆盖现有引用。
  4. 将本地分支快进到已获取的上游分支。必须仅允许快进更新。
  5. 验证以下各项:
    • 当前工作树位于所选分支;
    • 其上游是已确定的远程分支;
    • 本地 HEAD 与已获取的上游分支最新提交一致;并且
    • 工作树保持干净。

报告分支、上游和最终提交。如果任何一项验证失败,请报告确切状态,不要声称操作已完成。

评论

支持 Markdown