研发协作
用 gh 安全切换到 PR 分支(含工作区保护与回退路径)
当需要把当前仓库切到某个 PR 的分支上时,用 gh pr checkout 并先保护工作区、记录回退分支。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
用 gh 安全切换到 PR 分支(含工作特定
解决思路
- 把输入解析为 PR 编号:如果给的是编号或 URL,直接传给 `gh pr checkout`;如果给的是分支名,先运行 `gh pr list --head <branch> --state all --json number -q '.[0].number'` 取编号,若无匹配则 STOP,不要退化成裸 `git checkout`。
- 保护工作区:运行 `git status --porcelain`,若工作区脏则 STOP,让操作者先 commit、stash 或 discard,绝不自动 stash;同时用 `git branch --show-current` 记录当前分支作为回退路径。
- 检查 PR 是否仍打开:运行 `gh pr view <N> --json state,headRefName`;若状态为 `MERGED` 或 `CLOSED`,先警告(分支可能已过期)并在继续前确认。
- 执行切换:运行 `gh pr checkout <N>`,然后用 `git branch --show-current` 验证当前分支与 `headRefName` 一致。
- 汇报结果:说明已从 `<old>` 切换到 `<headRefName>`(PR #N),并给出回退命令 `git switch <old>`。
适用边界 · 注意事项
- 用户没有明确要求使用该技能时不要用(disable-model-invocation)。
- 工作区有未提交改动且操作者未决定 commit/stash/discard 时不要继续。
- PR 已 MERGED 或 CLOSED 且未获确认时不要切换。