GitHub Pull Request 模板引导作者提交可复现信息
在 GitHub 仓库的默认分支中创建 .github/pull_request_template.md,以后贡献者新建 Pull Request 时,正文会自动带出这份模板。模板最值得收集的不是泛泛的“改了什么”,而是审核者能直接执行的复现步骤、实际结果、预期结果、测试证据、影响范围与回滚办法。
GitHub 官方文档:https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/creating-a-pull-request-template-for-your-repository
- 模板文件位于默认分支的
.github/pull_request_template.md; - 打开 New pull request 后,Description 自动出现固定区块;
- 作者只需替换提示内容,不必每次回忆团队要求;
- 审核者可以先复现问题,再检查代码和验证结果。
使用场景:把审核前的追问变成提交时的填写项
没有模板时,Pull Request 很容易只写“修复登录问题”“优化查询”之类的结论。审核者仍然不知道问题出现在哪个环境、如何触发、修改前后分别是什么结果,也无法判断作者是否覆盖了回归测试。
一份实用模板应该让作者在提交时回答六类问题:
- 变更说明:为什么改,以及改动解决了什么问题;
- 复现步骤:审核者可以独立执行的最小步骤;
- 实际与预期结果:改动前发生什么,正确结果应该是什么;
- 验证信息:测试环境、测试命令和脱敏后的证据;
- 风险与回滚:影响范围、兼容性与回退方式;
- 提交前检查:关联 Issue、测试状态和敏感信息检查。
版本和入口:模板必须先进入默认分支
GitHub 支持把单个 Pull Request 模板放在仓库根目录、docs/ 或 .github/ 目录。本文使用 .github/pull_request_template.md,这样仓库根目录更整洁,也便于把协作配置集中在 .github 下。
模板只有存在于默认分支时,创建 Pull Request 才能稳定使用。若当前改动先进入 docs/add-pr-template 分支,需要先完成该分支对应的 Pull Request 并合并到 main,然后再用另一个新分支验证自动填充。
步骤一:从 Code 页进入新建文件入口
- 打开目标仓库主页,确认当前位于 Code 标签。
- 在文件列表右上方单击 Add file。
- 在展开菜单中选择 Create new file。
如果看不到 Add file,先检查当前账号是否对仓库有写入权限。只读成员可以在 Fork 中创建文件,但最终仍需通过 Pull Request 把模板合并到上游默认分支。

步骤二:创建模板文件并写入填写项
在文件名输入框中直接填写 .github/pull_request_template.md。GitHub 会按照斜杠自动创建目录层级。然后把下面的 Markdown 放入编辑器:
## 变更说明 ## 复现步骤 1. 2. 3. ## 实际结果与预期结果 - 实际结果: - 预期结果: ## 验证信息 - 测试环境: - 测试命令: - 验证结果: ## 风险与回滚 - 影响范围: - 回滚方式: ## 提交前检查 - [ ] 已关联 Issue 或说明无需关联 - [ ] 已补充最小复现步骤 - [ ] 已完成测试并填写结果 - [ ] 已检查敏感信息
是 Markdown 中的 HTML 注释。它能在编辑状态提醒作者,却不会在正常渲染的 Pull Request 正文中显示。提示语应说明“要填什么”,不要堆成长篇制度;真正需要保留给审核者的信息放在标题和列表项中。

.github/pull_request_template.md,并写入结构化填写项。步骤三:通过新分支提交模板变更
- 检查文件路径和正文后,单击右上角 Commit changes...。
- 提交说明填写
Add pull request template。 - 选择 Create a new branch for this commit and start a pull request。
- 分支名填写
docs/add-pr-template,再单击 Propose changes。
即使有权限直接修改默认分支,也建议通过新分支和 Pull Request 提交模板。这样团队可以先检查提示项是否足够清楚,避免把带有歧义或敏感信息示例的模板直接推给所有贡献者。

步骤四:新建测试 Pull Request 验证自动填充
先完成并合并模板变更,使文件进入默认分支。随后从另一个测试分支创建 Pull Request:
- 打开仓库的 Pull requests 标签,单击 New pull request。
- base 选择默认分支
main,compare 选择测试分支。 - 单击 Create pull request 进入标题和正文页面。
- 确认正文自动出现“变更说明、复现步骤、实际结果与预期结果、验证信息、风险与回滚、提交前检查”。
- 按实际改动填写内容,删除无关提示,再正式创建 Pull Request。
自动出现完整区块就是成功状态。如果正文为空,不要只刷新页面;优先检查模板是否已经合并到默认分支、文件名是否为 pull_request_template.md、目录是否为支持的位置。

需要多种模板时:使用 PULL_REQUEST_TEMPLATE 目录
同一个仓库同时处理缺陷修复、功能开发和文档更新时,可以把模板拆分到 .github/PULL_REQUEST_TEMPLATE/ 目录,例如:
.github/
└── PULL_REQUEST_TEMPLATE/
├── bug_fix.md
├── feature.md
└── documentation.md
创建 Pull Request 时,可以通过 template 查询参数指定模板:
https://github.com/OWNER/REPOSITORY/compare/BASE...HEAD?template=bug_fix.md
请把 OWNER、REPOSITORY、BASE 和 HEAD 替换为实际值。模板文件名应全部使用英文、数字、连字符或下划线,避免团队成员复制链接时遇到编码差异。
可见状态与限制:模板能引导,但不能强制必填
| 检查点 | 正确状态 | 异常时优先排查 |
|---|---|---|
| 文件位置 | 默认分支包含 .github/pull_request_template.md | 是否只存在于功能分支 |
| 文件格式 | Markdown 正常渲染,注释不显示 | 扩展名、标题和注释是否写错 |
| 创建 PR | Description 自动出现模板区块 | 仓库、base 分支和模板目录是否正确 |
| 信息质量 | 复现步骤可执行,证据已脱敏 | 提示是否过于笼统 |
Pull Request 模板本质上仍是可编辑的 Markdown。作者可以删除区块,也可以不勾选检查项,因此它不能真正强制必填。若团队需要硬性门禁,应把模板与分支保护、必需状态检查、CODEOWNERS 或自定义自动化检查结合使用。
常见问题
模板已经提交,为什么新建 Pull Request 仍然为空?
最常见原因是模板还没有进入默认分支。其次检查大小写和目录:单模板使用 pull_request_template.md;多模板使用 PULL_REQUEST_TEMPLATE 目录。不要把 Pull Request 模板误放进 ISSUE_TEMPLATE。
可以在模板中放日志和截图示例吗?
可以提供占位说明,但不要放真实访问令牌、Cookie、用户邮箱、生产数据库地址或未脱敏日志。建议提示作者粘贴“最小且脱敏”的证据,并把大体积日志放在受控的内部系统。
复现步骤应该写到多细?
以审核者在相同前置条件下能够独立得到问题为准。步骤应包含入口、输入、动作和可见结果;如果问题与版本或环境有关,把版本号、操作系统、运行模式等写入验证信息。
最终确认清单
- 模板文件已经合并到默认分支;
- 模板要求填写变更说明、复现步骤、实际与预期结果;
- 验证信息包含环境、命令和结果,而不是只写“测试通过”;
- 风险与回滚项能够说明影响范围和恢复办法;
- 测试 Pull Request 的正文自动带出全部区块;
- 模板中没有账号、令牌、真实客户数据或其他敏感信息。
完成这些检查后,模板就从“格式装饰”变成了评审入口:作者在发起 Pull Request 时补齐上下文,审核者拿到链接后可以先复现、再核对修改、最后验证结果,减少往返追问。
为什么 InsecureSkipVerify 不是临时万能解法,安全替代方案有哪些
- 上一篇
- 为什么 InsecureSkipVerify 不是临时万能解法,安全替代方案有哪些
- 下一篇
- 电脑操作型智能体上线前需要哪些权限护栏
-
- 文章 · 软件教程 | 3小时前 | github · CI/CD · 软件教程 · 最小权限 GitHub Actions 可复用工作流 workflow_call
- GitHub Actions 抽取可复用工作流并传递最小权限
- 161浏览 收藏
-
- 文章 · 软件教程 | 6小时前 | gitHub actions ·
- GitHub Actions 用 OIDC 连接云平台并移除长期密钥
- 356浏览 收藏
-
- 文章 · 软件教程 | 8小时前 | docker 容器安全 Docker Compose tmpfs 只读根文件系统
- Docker 容器启用只读根文件系统后,临时写目录怎么挂载
- 131浏览 收藏
-
- 文章 · 软件教程 | 1天前 | docker · 软件教程 · Docker Compose 网络 自定义网络 服务名访问 容器通信 Compose DNS
- Docker Compose 自定义网络并用服务名互相访问
- 483浏览 收藏
-
- 文章 · 软件教程 | 1天前 | vs code · 软件教程 · VS Code 扩展 工作区信任 Tasks Restricted Mode
- VS Code 用工作区信任隔离陌生仓库的扩展与任务
- 306浏览 收藏
-
- 文章 · 软件教程 | 1天前 | Node.js · vs code · VS Code 远程调试 断点调试 launch.json Remote-SSH Node.js inspect
- VS Code 配置 launch.json 调试远程服务进程
- 181浏览 收藏
-
- 文章 · 软件教程 | 1天前 | 开发环境 · docker · vs code · 团队协作 · docker 开发环境 项目依赖 devcontainer.json VS Code Dev Container VS Code扩展
- VS Code 用 Dev Container 固化扩展与开发依赖
- 304浏览 收藏
-
- 文章 · 软件教程 | 1天前 | 开发环境 · VS Code SSH配置 Remote SSH 远端设置 Remote Settings
- VS Code Remote SSH 连接后配置远端专属设置
- 233浏览 收藏
-
- 文章 · 软件教程 | 1天前 |
- VS Code 创建项目专用 Profile 并只同步需要的配置
- 396浏览 收藏
-
- 文章 · 软件教程 | 1天前 | 软件教程 · 环境变量 接口测试 Postman Collection Runner
- Postman 怎么用 Collection Runner 注入不同环境变量
- 440浏览 收藏
-
- 文章 · 软件教程 | 1天前 | Chrome Chrome DevTools 性能追踪 Performance
- Chrome DevTools 怎么导出并重新载入性能追踪
- 128浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 485次学习
-
- PubMedQA
- 深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
- 378次使用
-
- H2O EvalGPT
- H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
- 449次使用
-
- LMArena
- LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
- 457次使用
-
- HELM
- 深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
- 400次使用
-
- MMBench
- MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
- 227次使用
-
- Slack工作区、频道和线程怎么区分?协作功能与官方入口说明
- 2026-08-13 350浏览
-
- Slack主页跳到哪里登录?工作区地址、帮助中心与域名核对
- 2026-08-13 454浏览
-
- Slack桌面端登录失败怎么办?网页版回退、手机通知与更新检查
- 2026-08-14 197浏览
-
- Slack登录页面一直转圈怎么办?浏览器兼容、网络检查与官方回退路径
- 2026-08-14 425浏览
-
- Slack工作区地址进不去怎么办?网页版回退、客户端更新与权限核对
- 2026-08-14 287浏览

