【问题标题】:Why is it considered good practice to describe git commits in the present tense?为什么用现在时描述 git 提交被认为是一种好习惯?
【发布时间】:2012-12-01 10:18:50
【问题描述】:

我已经阅读了各种 Git 教程,包括官方教程,它们似乎都告诉我用现在时编写 Git 提交说明是一种很好的惯例和习惯。

这是为什么呢?背后的原因是什么?

【问题讨论】:

  • 我会说提交消息应该描述提交的作用,而不是开发人员做了什么。例如,如果您向项目添加新功能,“添加新功能”表示此提交通过添加功能更改项目,而“添加新功能”表示开发人员进行了实际更改。或者至少这是我的感受:-)

标签: git commit commit-message


【解决方案1】:

Git 是一个分布式 VCS(版本控制系统)。多人可以在同一个项目上工作。它会从许多来源获得更改。
而不是写消息来说明提交者所做的事情。最好将这些消息视为在 repo 上应用提交后将要做什么的说明

所以写这样的消息

修复错误#1234

代替

修复错误 #1234

不要将 git log 视为您的操作历史记录,而是对所有提交所做操作的顺序描述。

hacker news 上有一个关于它的大线程。在那里你会得到这个约定背后的更多原因。

【讨论】:

  • 这是现在完成时态。仍然存在
  • 虽然这个特定的提交消息违反了约定的第二部分,即摘要应该处于命令式的状态。例如。 “修复错误 #1234”。
  • 没错,就是完美的简单呈现。这是现在时之外的另一种时态。
  • @Daniel 尽管“Fixed bug #1234”确实传达了您所做的事情,但“Fix bug #1234”传达了补丁的作用。使用现在时的观点是,消息的目的是传达补丁的作用,而不是开发人员做了什么。
  • @WilliamPursell:如果它能传达补丁的作用,它不应该是“Fixes bug #1234”吗? “修复错误 #1234”是一个命令,它告诉存储库要做什么,正如其他人已经在他们的答案中解释的那样。 IMO 这是违反直觉的。
【解决方案2】:

这只是一个(相对)常见的约定,以便在项目中提交消息以一致读取。向 Git 提交补丁的建议(例如)来自Documentation/SubmittingPatches

  • 描述祈使语气的变化,例如“让 xyzzy 做 frotz” 而不是“[这个补丁]让xyzzy做frotz”或“[I]改变了 xyzzy to do frotz”,就好像你在给代码库下命令一样 改变其行为。

从括号中的主语可以看出,此约定消除了对不提供任何有用好处的提交动词重复或暗示的主语的需要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-04
    • 1970-01-01
    • 2014-08-12
    • 2018-05-18
    相关资源
    最近更新 更多