用途:把本地提交推送到一个已存在的 GitHub PR 的源分支上,而不是新建分支。适用场景是用户明确说“push to PR”。
主要能力与步骤:
- 查询 PR 头分支。用 GitHub API 获取指定仓库和 PR 的信息:curl -s https://api.github.com/repos/{OWNER}/{REPO}/pulls/{N} 并通过 python3 解析出 branch、clone_url 和 can_modify;其中 head.ref 为分支名(例如 active_visual_chat),head.repo.clone_url 为 fork 地址,maintainer_can_modify 必须为 true。
- 确认远程存在。用 git remote -v 检查 clone_url 是否已添加,仅在缺失时执行 git remote add <name> <clone_url>。
- 拉取并在需要时变基。执行 git fetch <remote> <branch>;若本地提交不在顶部,则执行 git rebase <remote>/<branch>。
- 推送。执行 git push <remote> HEAD:<branch>。
关键规则与限制:绝不在任何远程创建新分支;当本地分支与 PR 分支不同时,绝不用 git push <remote> <local_branch>,而应始终使用 HEAD:<pr_branch>;分支名只能来自 API 响应中的 head.ref;若 maintainer_can_modify 为 false,应告知用户无法推送;若推送被拒(非快进),需先 fetch 并 rebase。资料未提供更多安装、收费或平台信息。