提交Commit或PR的同时关闭Issue
700 字
4 分钟
提交Commit或PR的同时关闭Issue
Tip
在处理 issue 的流程里,把修复信息写进 commit 或 PR 描述可以在合并后自动关闭 issue,保持 Issue 与提交记录的一致性。
GitHub 支持的关键词
GitHub 在提交信息或 PR 描述中识别以下关键词(不区分大小写):
- close, closes, closed
- fix, fixes, fixed
- resolve, resolves, resolved
示例(都会在合并后自动关闭 #123):
- “Fixes #123”
- “Closes #123”
- “Resolved #123”
也可以一次性关闭多个 issue:
Fixes #12, fixes #34, closes #56对于跨仓库引用,可以使用 owner/repo#number 的形式:
Fixes CuteLeaf/other-repo#78注意:跨仓库引用仅在目标仓库可见且合并到目标仓库的默认分支时生效。
把关键词放在 Commit message 还是 PR 描述?
- 直接写在 Commit message:当该 commit 最终被合并到仓库的默认分支时,GitHub 会在合并后关闭 issue。
- 写在 PR 描述:更常见也更可控。无论 PR 中包含多少个修复 commit,只要 PR 描述含有关键词并且 PR 被合并,相关 issue 会被关闭。
推荐做法:在 PR 描述中写 Closes #123,同时在具体修复的 commit 中也简短标注(如 fix: 修复 X 问题 (#123)),这样审查者和历史记录都清晰。
常见使用场景
- 直接在 commit 中引用(一次性提交并推送)
git add .git commit -m "Fixes #45: 修复登录超时问题"git push origin feature/fix-login如果你直接把这个 commit 推到 main(不推荐在协作仓库直接推到主分支),GitHub 会在该 commit 入主分支时关闭 issue。
- 在本地修改某个 commit(补上关闭关键词)
git commit --amend -m "Fixes #45: 修复登录超时问题"git push --force-with-lease origin feature/fix-login注意:--amend 会修改提交哈希,强推(force push)可能影响协作中的其他人,慎用。
- 在 PR 描述中关闭 issue(推荐)
在创建 PR 时,在描述里写:
This PR fixes the login timeout and improves retry logic.
Closes #45合并 PR 后,issue #45 会自动被关闭。
注意事项
- 仅当包含关键词的提交被合并到目标仓库的默认分支时,Issue 才会被关闭。把 commit 推到你的 fork 并不会关闭上游仓库的 issue,除非该 commit 被合并回上游仓库。
- 在 PR 描述中使用关键词通常比在某个单独 commit 中更可靠,因为 PR 合并时不会因为 rebase/合并策略而丢失信息。
- 如果你想引用 issue 但不自动关闭,使用
Refs #123或See #123(这些不会触发自动关闭)。 - 合并方式会影响行为:使用 rebase + merge 时,commit message 中的关键词依然会被识别;使用 squash merge 时,最终被合并的那条 squash commit 的 message 决定是否关闭 issue(因此在合并前请确保 PR 描述或合并消息包含关闭关键词)。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!
提交Commit或PR的同时关闭Issue
https://blog.cuteleaf.cn/posts/practical-skills/close-issue-pr-with-commit/ 最后更新于 2025-11-10,距今已过 119 天
部分内容可能已过时
相关文章 智能推荐
1
GitHub 公开仓库与私有仓库的同步管理实践
实用技巧 私有仓库能选择性同步公开仓库的更新,既保留网站配置,又能及时获取基础框架的 bug 修复和功能升级。
2
Git 保持主分支(master)和开发分支(develop)同步
实用技巧 在Git Flow 工作流中,确保 master 和 develop 分支保持同步,用于并行开发新特性和修复Bug,避免分支分叉导致的问题,分享常用的同步方法和遇到的问题。
3
为Git设置代理,解决无法拉取和推送GitHub
实用技巧 解决使用Git时因网络问题导致无法拉取和推送GitHub,为 Git 配置 HTTP/HTTPS/SOCKS 代理来提升连接速度,包含 CMD 和 PowerShell 示例。
4
解决电脑看直播会导致电脑卡顿
实用技巧 解决在看b站/虎牙等平台直播的时候经常导致电脑卡顿,鼠标移动卡顿很严重的问题
5
更换博客系统,从Typecho更换到Astro
实用技巧 记录博客从传统 PHP 框架Typecho迁移到现代静态站点生成器的完整历程
随机文章 随机推荐