使用提交消息关闭 Github 中的多个问题

我知道您可以通过在提交消息中放入 closes #1fixes #1来解决问题。关闭同一提交消息中多个问题的最佳方法是什么?

此外,使用 fixes而不是 closes似乎不会创建从提交消息到问题的链接,但是使用 是的可以关闭问题。这是怎么回事?

41816 次浏览

Closes #1, closes #2, closes #3; rest of commit message.

closes子句可以在消息中的任何位置,而 fixes是一个有效的同义词:

This fixes a memory leak in foo() that closes #4,
also fixes #5 which is a duplicate.

下面的 曾经是可以工作,但是现在只有 参考文献发行 # 2和 # 3。

Closes #1, #2, #3

答案和对该答案的评论提到了以下格式:

关闭 # 1,关闭 # 2,关闭 # 3; 实际提交消息

如果我有一个值得参与的项目,并且有人用这样的提交消息发送了一个 pull 请求,那么无论代码多么漂亮,我都会拒绝这个 pull 请求。

这可能只是我个人偏好的问题,最终会被那些用来压缩提交消息的人打败,这些人会把 Git 的历史总结弄得乱七八糟,但我更愿意看到使用这种格式的提交消息:

更改摘要。

修正了以下错误:
* 修改错误加载程序,修复 # 1
* 返回一个不过时的指针,修复 # 2
* 对 GUI 元素应用了新的图形,关闭 # 3

他要求 最好的的方式来结束多个问题。

还要注意,如果您使用消息将提交推送到存储库的当前默认分支以外的任何其他分支,则只会引用这些问题。向主分支推送提交将关闭这些问题。见: 连接到 GitHub 的问题号码不工作?

请注意,自 2013年1月以来,“通过提交消息关闭问题”已经更改:

现在,当您在提交消息中输入“ Fixes #33”时,只有当提交合并到默认分支(通常是 master)中时,问题33才会关闭

这非常有用,因为这意味着问题的打开/关闭状态将映射到您的默认分支。
如果缺陷没有在您的默认分支中修复,问题将保持打开状态。
一旦带有修复程序的提交合并到默认分支中,问题将自动关闭。

您可以使用这些关键字中的任何一个来通过提交消息关闭问题:

close, closes, closed, fixes, fixed

如问题“ 在另一个分支上关闭 GitHub 问题”所示,这首先会引起一些混淆。

“使用关键字结束问题” 是来自 GitHub 的一个文档,描述了如何结束问题、标签以及如何结束多个问题。

要回答你的问题,GitHub 给出的答案是:

解决多个问题

关闭多个问题,每个问题的前言 引用上述关键字之一。您必须使用关键字 在每个问题之前,您参考的关键字的工作。

例如,This 关闭 # 34,关闭 # 23,并关闭 Example _ user/example _ repo # 42将关闭 同一存储库,并在“ example _ user/example _ repo”中发布 # 42 储存库。

这里是 Github 自己的一个文档: 将请求连接到问题

Resolves #10, resolves #123, resolves octo-org/octo-repo#100

Screenshot from GitHub Documentation