应该以现在还是过去时态写入提交消息?

时间:2009-11-18 05:21:47

标签: version-control coding-style

那么你认为哪个更好,更直观?

Fixed the XXX bug in YYY
Fix the XXX bug in YYY
Fixes the XXX bug in YYY
Fixing the XXX bug in YYY

请提供您的理由。注意我从您的一般观点来看,这意味着您不应该尝试将其与您首选的svn / cvs工具或编程语言相关联,而应将其视为应该/可以应用于任何工具和编程语言的东西。

12 个答案:

答案 0 :(得分:38)

我认为这些消息对其他开发人员来说似乎是正确的。他们还没有应用更改,并且存在一个隐含的问题,“应用此更改集/补丁会做什么?”它将“修复YYY中的XXX错误”!

对于其他动词来说,将它们作为命令编写似乎更自然,如果你有一个特定的目标,你可以更好地工作 - 你可以在工作完成之前写下提交摘要和前期测试。

我没有给它施加太大的重量,但对我来说,这是阻力最小的路径,同时保持一致性。

答案 1 :(得分:32)

我个人用过去时态(“修复”),因为当我提交bug时,修复了(或者我不会提交)。

答案 2 :(得分:13)

我更喜欢以现在时态看到提交消息。这样,消息描述了diff的作用(因为你可能会将差异甚至整个提交拉到另一个分支中)。因此,提交消息没有描述它“做”做了什么......它描述了提交本身“做”的作用。所以它应该是现在时。

想象一下,孤立地看待差异并试图决定是否应用它。以过去时态拥有头衔是没有意义的。

答案 3 :(得分:9)

恕我直言,如果你想要它是描述性的而不需要考虑上下文,那么“固定”肯定是唯一正确的变体。

关于直观性 - 如果我查看一些更改日志,我肯定会明白你的意思是修复了这个错误,因为我知道使用该单词的上下文,但如果这个单词被写入,我的大脑会更快地捕获它这种自我指定的方式。

“修复”是最糟糕的选择恕我直言,因为它不仅可以解释为描述补丁的作用(用于),而且还可以解释为错误状态,这意味着它正在工作但尚未解决。

答案 4 :(得分:7)

Fix the XXX bug in YYY
Teach the XXX to be more ZZZ
Correct typos in javadoc

一般情况下:     {imperative verb} {受影响的对象} {可选限定符}

当我考虑使用补丁集时,命令式形式适合所有用例。

  • 你打算在这做什么?
  • 这个补丁集做了什么?
  • 为什么要创建此补丁集? (修复xxx错误......)
  • 我需要修复yyy中的xxx错误。是否有另一个分支的提交已经这样做了?

无论您的选择如何,我发现一致性有助于提高可读性。选择一个并坚持下去。

答案 5 :(得分:5)

我认为用现在时写下目前的提交是一个好主意,因为当你以过去时态提到先前的提交时它会更清楚。

答案 6 :(得分:4)

我认为这不重要。目的是:

1)传达正在做或正在做的事情,因此可以更容易地发现错误,更容易恢复问题,并且通常能够更轻松地维护项目。

2)传达已修复的门票(如果有的话),因此审核员(如果他们在您公司中使用,可以看到哪些更改与哪些门票相对应)。

最后,如果它已经被修复,“修复”没有意义,如果你还在处理它,“固定”是不正确的。

答案 7 :(得分:2)

修复错误X ”比“修复错误X ”短2个字符。
并且比“修复bug X ”短3个。

从写短提交消息的角度来看,现在时/有时/通常会保存几个字符?
实际上我认为这有点重要,例如Git推荐使用不超过50个字符的第一个提交消息行。
此外,文字较少 - >读完了吗?

答案 8 :(得分:1)

提交消息描述了您编写正在提交的代码的原因。

"修正了问题3124"或"修正问题3124"似乎是正确的,因为它说这段代码修复了问题3124.

但是,语法也可能取决于为什么将错误标记为已修复。如果您可以在提交后将错误标记为已修复,则"已修复"很好,但是如果在验证你的代码之后将其他人标记为已修复的bug,那么"修复"可能更合适。

答案 9 :(得分:0)

我认为这个问题最重要的答案是:每个人都应该使用适用于特定项目的内容,并保持至少一点点的一致性。

虽然我看到使用现在时的优点(实际上偶然发现了这篇帖子,因为我在开源项目中看到了一些现在的时态消息),但我可能永远不会将现在时用于我的项目。这是Linux和Git以及其他更大的开源项目的推荐方式,但老实说,只要我不参与这些项目,我就不在乎。

我是独立开发者,我使用提交消息的第一行发布说明,而以下行中的描述让我了解了实现细节。与现在时,基于开发人员的方法相比,它是一个以用户为中心的工作流程。我可以用这种方式节省一些时间。在发行说明中给我的用户说明是非常不自然的。我的工作是修复错误并添加功能。我必须节省时间,因为我是一个独立开发者。我的团队中没有“发行说明作家”。

如果项目已经建立,请使用项目规则,但要保持务实,并采取一切措施使您的工作更轻松或更快。

答案 10 :(得分:-1)

我认为"Fixes XXX bug""Fix XXX bug"更有意义,如果使用现在时的原因是"使其更能描述提交的内容" 而不是提交者做了什么。

答案 11 :(得分:-4)

如果是小提交,我使用现在的连续:

  

修复错误304

  

添加评论

如果是大提交,我会做更多的更改日志:

  • 修正错误453,657和324
  • 添加表达式语法
  • 重构了运算符类。