首页/开发/Git 与协作速查/PR/MR 标题规范
协作与代码评审75 条

PR/MR 标题规范

以 squash 为主的仓库,PR 标题会成为主干提交标题:沿用提交规范(type(scope): 描述),并在 CI 里用规则校验 PR 标题。

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

PR 标题规范是什么

在 squash 合并为主的仓库里,PR/MR 标题会成为主干上的最终提交标题(GitHub squash 默认取 PR 标题)。因此标题要按提交规范写(如 type(scope): 描述),并在 CI 里加一条对标题的格式校验,防止漏网;即便走 merge 流程,标题也是在通知、变更列表、changelog 里最先被看到的一行文字,检索价值同样重要。

基本信息

推荐格式<type>(<scope>): <描述>,与提交信息规范一致
校验流水线里对 PR/MR 标题跑 commitlint 之类规则
编辑gh pr edit --title;GitLab 网页端可直接改
长度保持单行且控制在合理上限内(如 100 字符)
语言全仓统一中文或英文,避免检索与分组困难

典型使用场景

  • squash 合并的仓库:标题直接进主干日志,必须合格。
  • changelog 自动化:工具按 type/scope 归类生成发布说明。
  • 历史检索:用 fix(login) 之类前缀快速过滤相关提交。
  • 多团队协作:统一格式后,非本模块的人也能看懂变更性质。
  • 上游同步:维护 fork 时标题规范向被同步的上游仓库看齐。

常用示例

常用示例
gh pr create --title 'fix(login): 修复重定向循环' --body-file .github/pull_request_template.md
gh pr edit 128 --title 'fix(login): 修复重定向循环(含回归测试)'
gh pr view 128 --json title -q .title   # 复核当前标题
# 流水线里对 PR 标题跑 commitlint 类校验,格式不通过则卡住合并

type 前缀对照

前缀含义例子
feat新功能feat(cart): 支持优惠券
fix缺陷修复fix(login): 修复重定向循环
docs文档变更docs(api): 补充分页说明
refactor重构且不改行为refactor(db): 收拢连接池管理
perf性能优化perf(list): 减少重复渲染
build/style构建与代码风格build: 升级构建工具链
test/chore/ci测试、杂务、流水线ci: 增加 PR 标题校验
标题写清变更性质与影响面,细节放正文;破坏性变更可在标题加感叹号或在正文写明 BREAKING CHANGE,便于工具识别。

易错点

  • 标题写成「修复问题」「更新代码」,主干历史失去检索价值;评审时顺手要求改标题。
  • 标题与最终改动不符(追加了别的改动),squash 后提交记录误导后来者;合入前更新标题。
  • 只靠人工约定、没有 CI 校验,格式迟早漂移;把标题校验加进必过检查。
  • 标题里塞长段说明或工单正文,通知与列表页被截断;工单号放正文即可。
  • 中文全角标点与英文冒号混用导致正则校验误伤;定稿前用被校验的同一套例子自测一遍。

数据来源与参考

  • Conventional Commits 1.0.0 规范
  • GitHub Docs:About merge methods(squash 标题来源)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌