Pulling Updates from Skills Repository
この Skill は、ユーザーがローカルのスキルリポジトリを上流の変更と同期させ、個人の修正を保持するのに役立ちます。Git のプル、マージ、競合解決のプロセスを自動化し、スキルライブラリを常に最新の状態に保ち、カスタムコンテンツを効果的に管理します。これにより、スキルリポジトリのメンテナンス効率と安定性が向上します。
git clone https://github.com/obra/superpowers-skills.gitBefore / After 効果比較
1 组ユーザーは、スキルリポジトリを同期するために、ステータスの確認、変更の一時保存、上流の更新のプル、ブランチのマージ、そして発生する可能性のあるコード競合の手動解決など、一連の複雑なGitコマンドを手動で実行する必要がありました。これは時間がかかり、操作ミスによるデータ損失やリポジトリの破損につながりやすく、特にGitに不慣れなユーザーにとっては、スキルライブラリを最新の状態に保つことが大きな課題でした。
この Skill は、リポジトリの状態確認から、更新のプル、マージ、さらには競合解決の支援まで、同期プロセス全体を自動化します。ユーザーは簡単な操作で、個人の修正を保持しつつ、スキルライブラリを上流と同期させることができます。これにより、手動操作の複雑さとエラー率が大幅に削減され、スキルリポジリのメンテナンス効率と安定性が劇的に向上し、ユーザーはスキルの管理ではなく利用に集中できるようになります。
Updating Skills from Upstream
Overview
Pull and merge upstream changes from obra/superpowers-skills into your local skills repository while preserving your personal modifications.
Announce at start: "I'm using the Updating Skills skill to sync with upstream."
Prerequisites
Your skills repo must have a tracking branch configured. The plugin sets this up automatically (either as a fork with origin remote, or with an upstream remote).
The Process
Step 1: Check Current Status
Run:
cd ~/.config/superpowers/skills
git status
If working directory is dirty: Proceed to Step 2 (stash changes) If clean: Skip to Step 3
Step 2: Stash Uncommitted Changes (if needed)
Run:
git stash push -m "Temporary stash before upstream update"
Record: Whether changes were stashed (you'll need to unstash later)
Step 3: Determine Tracking Remote and Fetch
First, detect which remote to use:
TRACKING_REMOTE=$(git rev-parse --abbrev-ref --symbolic-full-name @{u} 2>/dev/null | cut -d'/' -f1 || echo "")
Then fetch from the appropriate remote:
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
Expected: Fetches latest commits from the tracking remote (or falls back to upstream/origin)
Step 4: Check What's New
Run:
git log HEAD..@{u} --oneline
Show user: List of new commits being pulled
Note: @{u} refers to the upstream tracking branch for your current branch
Step 5: Merge Changes
First, try a fast-forward merge (cleanest option):
git merge --ff-only @{u}
If fast-forward succeeds: Skip to Step 7 (no conflicts possible with fast-forward) If fast-forward fails: Your branch has diverged. Try regular merge:
git merge @{u}
If merge succeeds cleanly: Proceed to Step 7 If conflicts occur: Proceed to conflict resolution
Step 6: Handle Merge Conflicts (if any)
If conflicts:
- Run
git statusto see conflicted files - For each conflict, explain to user what changed in both versions
- Ask user which version to keep or how to merge
- Edit files to resolve
- Run
git add <resolved-file>for each - Run
git committo complete merge
Step 7: Unstash Changes (if stashed in Step 2)
If you stashed changes:
git stash pop
If conflicts with unstashed changes: Help user resolve them
Step 8: Verify Everything Works
Run:
${SUPERPOWERS_SKILLS_ROOT}/skills/using-skills/find-skills
Expected: Skills list displays correctly
Step 9: Announce Completion
Tell user:
- How many new commits were merged
- Whether any conflicts were resolved
- Whether their stashed changes were restored
- That skills are now up to date
Common Issues
"Already up to date": Your local repo is current, no action needed
"fatal: no upstream configured": Your branch isn't tracking a remote branch. Check git remote -v to see available remotes, then set tracking with git branch --set-upstream-to=<remote>/<branch>
Detached HEAD: You're not on a branch. Ask user if they want to create a branch or check out main.
Fast-forward fails, diverged branches: Your local branch has commits that aren't in the remote. Regular merge will be needed, which may cause conflicts.
Remember
- Always stash uncommitted work before merging
- Explain conflicts clearly to user
- Test that skills work after update
- User's local commits/branches are preserved
ユーザーレビュー (0)
レビューを書く
レビューなし
統計データ
ユーザー評価
この Skill を評価