首页/开发/Git 与协作速查/PR 模板文件(GitHub)
协作与代码评审75 条

PR 模板文件(GitHub)

把评审检查项固化为模板:.github/pull_request_template.md 对全部 PR 生效;也可用 .github/PULL_REQUEST_TEMPLATE/ 目录放多个模板按 URL 参数选用。

Git 与协作速查开发更新于 2026-10-13

PR 模板是什么

PR 模板是一段预填进新建 Pull Request 描述框的 Markdown 文本,作用是把团队的评审检查项固化成固定格式,让每个 PR 都交代清动机、影响面与验证方式。GitHub 按约定路径自动加载模板文件;GitLab 的对应机制是合并请求模板目录。模板只负责提醒,不负责强制,真正的硬性要求仍要交给 CI 或分支保护。

基本信息

GitHub 单模板.github/pull_request_template.md(文件名大小写不敏感)
GitHub 多模板.github/PULL_REQUEST_TEMPLATE/<名称>.md,创建时用 template=<名称> 选用
GitLab 对应.gitlab/merge_request_templates/ 目录,默认模板名 Default.md
生效范围仓库默认分支上的模板文件对新 PR 生效
权限要求仓库写入权限即可提交模板文件

典型使用场景

  • 统一收集变更目的与影响范围,减少评审人反复追问背景
  • 把测试、文档、兼容性、回滚方案等检查项固化为可勾选清单
  • 按改动类型提供多套模板:新功能、缺陷修复、依赖升级、紧急热修各一份
  • 预留关联 Issue 的写法,让需求与代码保持可追溯
  • 标注破坏性变更与迁移步骤的填写位置,降低发布风险

创建模板文件

创建模板文件
mkdir -p .github                        # 建立 GitHub 约定的配置目录
touch .github/pull_request_template.md   # 新建默认 PR 模板
git add .github/pull_request_template.md # 纳入版本管理
git commit -m 'chore: 添加 PR 模板'       # 必须提交到默认分支才会生效
git push origin main                     # 推送后新建的 PR 会自动带出模板

模板正文示例

模板正文示例
## 变更说明
<!-- 一句话说明目的与影响面 -->

## 风险与回滚
<!-- 是否可回滚、回滚步骤 -->

## 检查清单
- [ ] 已补充或更新测试
- [ ] 已更新文档(如需要)
- [ ] 破坏性变更已在描述中标注

## 关联 Issue
Closes #

模板路径对照

平台路径说明
GitHub.github/pull_request_template.md默认单模板
GitHub.github/PULL_REQUEST_TEMPLATE/多模板目录,用 URL 参数选用
GitLab.gitlab/merge_request_templates/目录内多个 .md,Default.md 为默认
模板内容在创建 PR 后可以被任何人删改,它是提醒而非门禁。真正必须满足的条件(测试通过、批准数、会话全部解决)应配置成 CI 检查或分支保护,模板与自动化职责互补,不要互相重复。
模板越长越容易被整段忽略,建议控制在半屏以内:只留必须由人填写的项。模板更新后只对新 PR 生效,已存在的 PR 描述不会自动回填。

易错点

  • 模板文件放在非默认分支不会生效,建库初期就要提交到默认分支
  • 模板里堆大量注释占位符却不删,描述被占位文字淹没,评审人反而跳过要点
  • 多模板目录中的文件名与选用参数不一致(大小写或拼写不同)会导致选不到模板
  • 把已经由 CI 自动检查的项再写进模板,形成重复劳动,久而久之没人认真勾选
  • 模板变更后只对新 PR 生效,历史 PR 不会回填,团队需要接受这种不一致

数据来源与参考

  • GitHub Docs:Creating a pull request template for your repository
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌