mcpField
P
Pulling Updates from Skills Repository

Pulling Updates from Skills Repository

github.com/obraAgent 工作流756502 次安装54 周前更新
代码仓库

关于 Pulling Updates from Skills Repository

用于将上游更改同步到本地 skills 仓库,同时保留个人修改。该技能涵盖检查状态、获取更新、合并、冲突处理和验证。

主要功能

  1. 01检查仓库状态并暂存本地更改
  2. 02查找跟踪远程并获取更新
  3. 03合并前查看新增提交
  4. 04指导处理合并冲突
  5. 05恢复更改并验证技能列表

适用场景

  1. 01从上游更新 skills 仓库
  2. 02同步时保留未提交的工作
  3. 03处理本地与上游更改分歧后的冲突

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/obra/superpowers-skills --skill pulling-updates-from-skills-repository

安装后在 Claude Code 中输入/pulling-updates-from-skills-repository确认已加载。

详细介绍

从上游更新 Skills

概览

从 obra/superpowers-skills 拉取并合并上游更改到本地 Skills 仓库,同时保留个人修改。

开始时告知:“我正在使用 Updating Skills 技能与上游同步。”

前提条件

你的 Skills 仓库必须配置跟踪分支。插件会自动完成设置(通过 origin 远程仓库作为 fork,或配置 upstream 远程仓库)。

流程

步骤 1:检查当前状态

运行:

cd ~/.config/superpowers/skills
git status

**如果工作目录有未提交的更改:**继续执行步骤 2(暂存更改) **如果工作目录干净:**跳到步骤 3

步骤 2:暂存未提交的更改(如需要)

运行:

git stash push -m "Temporary stash before upstream update"

记录:是否暂存了更改(稍后需要取消暂存)

步骤 3:确定跟踪远程仓库并获取更改

首先,检测要使用的远程仓库:

TRACKING_REMOTE=$(git rev-parse --abbrev-ref --symbolic-full-name @{u} 2>/dev/null | cut -d'/' -f1 || echo "")

然后,从相应的远程仓库获取更改:

if [ -n "$TRACKING_REMOTE" ]; then
    git fetch "$TRACKING_REMOTE" 2>/dev/null || true
else
    git fetch upstream 2>/dev/null || git fetch origin 2>/dev/null || true
fi

预期结果:从跟踪远程仓库获取最新提交(或回退到 upstream/origin)

步骤 4:检查新增内容

运行:

git log HEAD..@{u} --oneline

向用户展示:即将拉取的新提交列表

注意:@{u} 指当前分支的上游跟踪分支

步骤 5:合并更改

首先,尝试快进合并(最简洁的选项):

git merge --ff-only @{u}

**如果快进合并成功:**跳到步骤 7(快进合并不会产生冲突) **如果快进合并失败:**你的分支已分叉。尝试常规合并:

git merge @{u}

**如果合并成功且没有冲突:**继续执行步骤 7 **如果发生冲突:**继续执行冲突解决流程

步骤 6:处理合并冲突(如有)

如果发生冲突:

  1. 运行 git status 查看冲突文件
  2. 针对每个冲突,向用户说明两个版本分别有哪些更改
  3. 询问用户要保留哪个版本,或如何合并
  4. 编辑文件以解决冲突
  5. 对每个文件运行 git add <resolved-file>
  6. 运行 git commit 完成合并
步骤 7:恢复暂存的更改(如步骤 2 中已暂存)

如果暂存了更改:

git stash pop

**如果恢复已暂存的更改时发生冲突:**帮助用户解决冲突

步骤 8:验证一切正常

运行:

${SUPERPOWERS_SKILLS_ROOT}/skills/using-skills/find-skills

预期结果:Skills 列表正确显示

步骤 9:宣布完成

告知用户:

  • 合并了多少个新提交
  • 是否解决了冲突
  • 是否恢复了暂存的更改
  • Skills 现已更新至最新

常见问题

“Already up to date”:本地仓库已是最新状态,无需操作

“fatal: no upstream configured”:你的分支没有跟踪远程分支。运行 git remote -v 查看可用的远程仓库,然后使用 git branch --set-upstream-to=<remote>/<branch> 设置跟踪关系

Detached HEAD:你当前不在任何分支上。询问用户是否要创建分支或检出 main。

快进失败,分支已分叉:本地分支包含远程仓库中没有的提交。需要进行常规合并,这可能会产生冲突。

请记住

  • 合并前务必暂存未提交的工作
  • 向用户清楚说明冲突
  • 更新后测试 Skills 是否正常工作
  • 保留用户的本地提交和分支

评论

支持 Markdown