144

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

此外,似乎使用fixescloses不是创建从提交消息到问题的链接,但它确实关闭了问题。那是怎么回事?

4

5 回答 5

199

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

于 2010-08-23T20:13:40.513 回答
44

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

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

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

这可能只是我个人偏好的问题,最终会被那些习惯于压缩提交消息的人打败,这些提交消息会混淆 Git 历史摘要,但我更愿意看到格式如下的提交消息:

所做更改的摘要。

修复了以下错误:
* 修改错误加载器,修复 #1
* 返回一个非陈旧指针,修复 #2
* 将新图形应用于 gui 元素,关闭 #3

他要求解决多个问题的最佳方式。

另请注意,如果您将带有消息的提交推送到存储库的当前默认分支以外的任何其他分支,则只会引用这些问题。将提交推送到主分支将关闭问题。请参阅:指向 GitHub 问题编号的链接不起作用?

于 2012-06-26T07:53:57.527 回答
12

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

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

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

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

close, closes, closed, fixes, fixed

正如问题“ Closing a GitHub Issue while on a different branch ”所示,这首先会引起一些混乱。

于 2013-04-05T06:42:10.307 回答
4

这里来自 Github 的一个文档:Linking a pull request to an issue

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

来自 GitHub 文档的屏幕截图

于 2020-08-15T14:27:51.020 回答
2

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

要回答您的问题,来自 GitHub 的答案是:

关闭多个问题

要关闭多个问题,请在每个问题引用前加上上述关键字之一。您必须在您引用的每个问题之前使用关键字才能使关键字起作用。

例如,这将关闭 #34、关闭 #23 并关闭 example_user/example_repo#42 将关闭同一存储库中的问题 #34 和 #23,并在“example_user/example_repo”存储库中关闭问题 #42。

于 2019-10-14T13:20:11.467 回答