Token导航 LogoToken导航TokenDH.com
待分类执行命令github未标认证来源可访问许可证需确认审计提醒

git-upstream-prgit 上游 pr

Agent Skill

git-upstream-pr 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

612

周安装

25

GitHub Stars

28

下载量

196
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:git-upstream-pr(git 上游 pr)
来源仓库:https://github.com/laurigates/claude-plugins
仓库路径:skills/git-upstream-pr
安装命令:
npx skills add https://github.com/laurigates/claude-plugins --skill git-upstream-pr
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/laurigates/claude-plugins --skill git-upstream-pr

简介

git-upstream-pr 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合围绕仓库状态和协作事项进行整理。

  • 适用于将本地修改推送至上游仓库、参与开源贡献或同步社区变更的场景。
  • 通过 GitHub 仓库安装,使用 npx skills add 命令添加,需参考原始 README 获取详细用法。
  • 安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写操作。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

/git:upstream-pr

Submit clean, atomic PRs to upstream repositories from fork work.

When to Use This Skill

Use this skill when...Use /git:commit instead when...
Contributing changes back to the upstream repoCommitting to your own fork/repo
Cherry-picking fork commits for upstream PRCreating a PR within the same repo
Fork's main has diverged from upstreamFork and upstream are in sync
Need a clean branch based on upstream/mainWorking on a branch already tracking upstream

Context

  • Current branch:!git branch --show-current
  • Git status:!git status --porcelain=v2 --branch
  • Remotes:!git remote -v
  • Has upstream:!git remote get-url upstream
  • Origin URL:!git remote get-url origin
  • Upstream URL:!git remote get-url upstream
  • Recent commits:!git log --oneline --max-count=20
  • Stash list:!git stash list

Parameters

Parse these from $ARGUMENTS:

ParameterRequiredDescription
--commits sha1,sha2,...NoComma-separated commit SHAs to cherry-pick (interactive selection if omitted)
--branch nameNoName for the upstream PR branch (auto-generated if omitted)
--upstream owner/repoNoOverride upstream repo (detected from remote if omitted)
--draftNoCreate PR as draft
--dry-runNoShow what would happen without making changes

Execution

Execute this fork-to-upstream PR workflow:

Step 1: Validate fork environment

  1. Verify this is a git repository: git rev-parse --git-dir
  2. Check if upstream remote exists (from context)
  3. If no upstream remote:

- Try to detect via gh repo view --json parent -q '.parent.nameWithOwner' - If found, add it: git remote add upstream https://github.com/<owner/repo>.git - If not found, ask user with AskUserQuestion for the upstream repo URL

  1. Fetch upstream: git fetch upstream
  2. Record the current branch name and check for uncommitted changes
  3. If uncommitted changes exist, stash them: git stash push -m "upstream-pr: WIP before upstream PR"

Step 2: Assess fork state

Report the fork's divergence from upstream:

Fork status:
  Upstream: <upstream-repo>
  Behind upstream/main: N commits
  Ahead of upstream/main: M commits

If --dry-run is set, also show which commits would be selected and stop here.

Step 3: Select commits

If --commits provided:

  • Parse the comma-separated SHA list
  • Validate each SHA exists: git rev-parse --verify <sha>
  • Show summary of selected commits

If --commits not provided:

  • Show recent commits that are ahead of upstream/main: git log --oneline --format='%h %s (%cr)' upstream/main..HEAD
  • Use AskUserQuestion to let the user select which commits to include
  • Present commits as options with their subject lines

Step 4: Create clean branch from upstream/main

  1. Generate branch name if --branch not provided:

- Extract scope from first commit message (e.g., feat(auth): add OAuth -> feat/auth-add-oauth) - Fallback: upstream-pr/<date>

  1. Create branch from upstream/main: git switch -c <branch-name> upstream/main

Step 5: Cherry-pick and squash

  1. Cherry-pick each selected commit in order: git cherry-pick <sha1> <sha2>...
  2. If cherry-pick conflicts occur:

- Report the conflict to the user - Reference git-conflicts for resolution - After resolution: git cherry-pick --continue

  1. Squash all cherry-picked commits into one atomic commit: git reset --soft upstream/main git commit -m "<conventional commit message>"
  2. Use AskUserQuestion to confirm or edit the commit message

- Default message: derived from the cherry-picked commits - Format: conventional commit with scope

Step 6: Push to fork

git push -u origin <branch-name>

If --dry-run, show the command without executing.

Step 7: Create cross-fork PR

  1. Determine the upstream repo (from --upstream or detected remote)
  2. Determine the fork owner (from origin remote URL)
  3. Create the PR: gh pr create \ --repo <upstream-owner/upstream-repo> \ --base main \ --head <fork-owner>:<branch-name> \ --title "<conventional commit title>" \ --body "<PR description>" Add --draft if the flag was provided.
  4. Report the PR URL to the user

Step 8: Restore working state

  1. Switch back to the original branch: git switch <original-branch>
  2. If changes were stashed in Step 1, pop them: git stash pop
  3. Report completion summary: Upstream PR created: PR: <url> Branch: <branch-name> Commits: N cherry-picked, squashed into 1 Original branch restored: <branch>

Error Handling

ErrorRecovery
Cherry-pick conflictShow conflicted files, reference git-conflicts skill
Push rejectedCheck if branch already exists on fork; suggest --branch override
No upstream remoteAuto-detect from gh repo view --json parent or ask user
Upstream/main not foundTry upstream/master; ask user for correct branch name
No commits ahead of upstreamReport "Nothing to contribute" and exit

Agentic Optimizations

ContextCommand
Divergence checkgit rev-list --left-right --count upstream/main...HEAD
Commits aheadgit log --oneline --format='%h %s' upstream/main..HEAD
Validate SHAgit rev-parse --verify --short <sha>
Fork owner`git remote get-url origin \sed -E 's#.*github.com[:/]##; s#\.git$##; s#/.*##'`
Upstream repo`git remote get-url upstream \sed -E 's#.*github.com[:/]##; s#\.git$##'`
Cross-fork PRgh pr create --repo <upstream> --head <fork-owner>:<branch>

Related Skills

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

32.98%
按下载量换算65

Claude

30.93%
按下载量换算61

Cursor

19.72%
按下载量换算39

Gemini CLI

9.11%
按下载量换算18

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

执行命令

安装流程涉及命令执行,可能通过 npx skills add https://github.com/laurigates/claude-plugins --skill git-upstream-pr 联网下载 Skill 或依赖。用户安装前应确认命令来源、仓库内容和执行环境。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills