关于 create-pull-request
使用 `gh` CLI 创建 Pull Request 的工作流技能,指导检查仓库状态、分支和标题规范及 PR 正文,并要求执行创建命令前先确认。
主要功能
- 01创建前检查仓库状态
- 02审查差异与分支状态
- 03分支命名和标题规范
- 04按仓库 PR 模板填写
- 05创建前确认命令
适用场景
- 01为功能分支创建 PR
- 02提交前检查变更
- 03拟定 Conventional Commits 标题
- 04填写 PR 模板
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ hrdtbs/ agent-skills --skill create-pull-request安装后在 Claude Code 中输入/create-pull-request确认已加载。
详细介绍
创建拉取请求
此技能可确保使用 gh CLI 正确创建拉取请求,并遵循分支命名、提交格式和 PR 模板。
创建 PR 前(预检清单)
运行 gh pr create 前,请先检查仓库状态。向用户说明这些检查为何有助于保持 Git 历史整洁、让评审流程更顺畅:
- **检查未提交的更改:**是否有未提交的更改?(运行
git status。)如果有,询问用户是要提交还是暂存这些更改。 - **检查自己的差异:**更改是否符合 PR 的意图?(运行
git diff main...HEAD或类似命令。)创建 PR 前不要跳过差异审查,以便发现意外包含的内容,例如机密信息或调试语句。 - **检查分支:**当前是否位于正确的分支?确保从功能分支发起 PR,而不是直接从
main或master发起,以免意外合并未完成的工作。 - **推送分支:**创建 PR 前,确保已将分支推送到远程仓库(
git push -u origin <branch-name>),否则ghCLI 会失败。
预期输出
用户要求创建 PR 时,清楚说明你将采取哪些步骤来检查仓库和分支状态。检查完成后,提供将要执行的确切 gh pr create 命令,并等待用户确认后再继续。
分支和标题规范
- **分支命名:**使用
type/issue-number-slug或type/slug。- 有效类型:
feat、fix、docs、refactor、chore。 - 示例:
feat/123-add-login、fix/memory-leak。
- 有效类型:
- **PR 标题:**遵循 Conventional Commits 格式,以确保变更日志准确无误。
- 格式:
<type>[optional scope][optional !]: <description> - 示例 1:
feat(auth): add OAuth2 login - 示例 2:
fix(api): resolve race condition in user fetch
- 格式:
PR 正文和模板
**重要:**如果仓库中存在 PR 模板 .github/pull_request_template.md,请阅读并使用该模板。按照模板结构编写 PR 正文,有助于评审者理解你的更改。
如果没有模板,请清晰、简洁地概述:
- PR 的作用。
- 更改原因(解决的问题)。
- 测试步骤或评审者需要注意的事项。
常见问题
- 避免使用含糊的 PR 标题(例如“更新文件”“修复错误”)。评审者和自动化变更日志生成工具需要从标题中立即了解上下文。请遵循 Conventional Commits(例如
fix(auth): resolve token expiration issue),让意图一目了然。这样维护者就能快速了解更改范围。 - 不要跳过或删除 PR 模板。
.github/pull_request_template.md中的模板用于收集必要的合规信息、测试覆盖情况或评审清单。请完整填写,以减轻维护者的认知负担并加快评审进度。 - 不要在审查差异前创建 PR(例如使用
git diff main...HEAD)。必须仔细检查差异,避免意外包含调试语句(console.log、print)、机密信息(.env文件)或完全无关的文件。这有助于确保代码整洁、安全。 - 不要想当然地认为目标分支是
main或master。创建 PR 前请确认基础分支。针对错误分支创建 PR(例如以发布分支而非集成分支为目标)可能导致令人困惑的合并冲突或意外部署。请确保目标分支正确。
示例
示例 1:为功能创建拉取请求 输入:我想为分支“feat/login”创建一个 PR,该分支添加了登录页面。 输出:首先,检查是否有未提交的更改,并在需要时推送分支。然后运行:
gh pr create --title "feat(auth): add login page" --body "## What the PR does\nAdds a new login page component to handle user authentication.\n\n## Why\nResolves issue #123 where users couldn't log in."
示例 2:没有模板时为错误修复创建 PR 输入:为内存泄漏修复创建一个 PR。 输出:
gh pr create --title "fix(core): resolve memory leak in event listener" --body "Fixes a memory leak caused by not removing event listeners in the core module. Ensure to test by monitoring memory usage while spamming events."
命令参考
使用 gh CLI 创建 PR:
gh pr create --title "feat(scope): your descriptive title" --body "Your descriptive body following the template"
评论
支持 Markdown