首页/开发/Git 与协作速查/关联与自动关闭 Issue 的关键字
协作与代码评审75 条

关联与自动关闭 Issue 的关键字

在 PR/MR 描述或提交信息里使用 Closes/Fixes/Resolves 加编号,合并时自动关闭对应 Issue;GitLab 支持 Fixes #、Closes #、Resolves # 等。

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

关联与自动关闭 Issue 的关键字是什么

在 PR/MR 描述或提交信息里用关闭类关键字加编号,合并到目标分支时平台会自动关闭对应 Issue,省去手工整理。GitHub 支持 close、fix、resolve 的多种形态,GitLab 同样支持关闭模式关键字。要注意生效条件是「目标分支合并时」,写在评论里通常不会触发。若只是想建立引用而不关闭,用 Refs 之类的引用写法更合适。

基本信息

GitHub 关键字close/closes/closed、fix/fixes/fixed、resolve/resolves/resolved 加 #编号
GitLab同样支持关闭模式关键字,另可用 !编号 引用 MR
生效时机目标分支合并时关闭;写在 Issue 评论里不会自动关闭
只引用不关闭用 Refs #编号 等表达
平台GitHub 与 GitLab

典型使用场景

  • 修复缺陷后让 Issue 随合并自动关闭
  • 一次改动关联多个相关单号
  • 在描述里写明修复了哪些问题,便于评审核对
  • 团队统一关联写法,减少人工关闭的操作
  • 排查 Issue 未被自动关闭的原因
  • 把需求单与实现 PR 建立可追溯的对应关系

常用示例

常用示例
git commit -m 'fix(login): 修复重定向循环' -m 'Closes #4821'
# 描述中的引用写法
# Fixes #4821, resolves #4900
# 只引用不关闭
# Refs #4821

关键字与效果

写法效果
Closes / Fixes / Resolves #123合并时自动关闭该 Issue
Refs #123仅建立引用,不关闭
Fix !45(GitLab)引用对应的合并请求
同一 Issue 被多个 PR 关联时,先合并的那个触发关闭;引用而非关闭可以用 Refs #编号 表达。
把关闭关键字放在描述或提交页脚都有效,放在提交标题里会让日志冗长,建议统一放在页脚或描述中。
合并到非默认分支时,自动关闭规则可能不生效;需要跨分支关闭 Issue 时先确认目标分支的配置,再决定是否手工关闭。

排查未自动关闭的思路

  • 确认关键字拼写与空格格式正确
  • 确认编号对应的是 Issue 而不是其他单号
  • 确认改动是否真的合并到了预期目标分支
  • 确认关键字写在描述或提交信息里,而不是评论中

易错点

  • 关键字与编号之间格式要正确(如 Fixes #123),写成带冒号的变体可能不被识别
  • 把编号写进提交标题会让日志冗长,放页脚或描述更清晰
  • 在 Issue 评论里写关闭关键字不会自动关闭,必须在 PR/MR 描述或建立关联的提交信息里写
  • 指向的仓库或项目写错时关键字无效,跨仓库引用需要写清仓库前缀
  • 一个改动关联过多单号会掩盖重点,按实际对应关系填写更清晰

数据来源与参考

  • GitHub Docs:Linking a pull request to an issue
  • GitLab Docs:Closing issues automatically
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌