为什么用现在时描述 git 提交被认为是很好的做法?

Why is it considered good practice to describe git commits in the present tense?

提问人:Madara's Ghost 提问时间:12/13/2012 更新时间:7/29/2020 访问量:11201

问:

我读过各种 Git 教程,包括官方教程,它们似乎都告诉我,用现在时写 Git 提交笔记是很好的惯例和做法。

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

git 提交 提交消息

评论

2赞 BenC 12/13/2012
我想说的是,提交消息应该描述提交做了什么,而不是开发人员做了什么。例如,如果向项目添加新功能,“添加新功能”表示此提交通过添加功能来更改项目,而“添加新功能”表示开发人员进行了实际更改。或者至少这就是我对此的感受:-)
0赞 mkrieger1 9/15/2023
这回答了你的问题吗?我应该在 git commit 消息中使用过去时还是现在时?

答:

50赞 Shiplu Mokaddim 12/13/2012 #1

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

所以写一条这样的消息

修复 bug#1234

而不是

修复了 bug #1234

不要将 git 日志视为操作的历史记录,而是将所有提交所执行操作的序列描述视为日志。

关于它的黑客新闻有一个很大的线索。在那里,你会得到这个约定背后的更多原因。

评论

1赞 Shiplu Mokaddim 12/13/2012
那是现在完成时。仍然存在
2赞 CB Bailey 12/13/2012
尽管这个特定的提交消息违反了约定的第二部分,即摘要应该处于命令式的语气中。例如,“修复错误 #1234”。
1赞 Daniel Hilgarth 12/13/2012
没错,它的存在非常简单。这是比现在时另一种时态。
6赞 William Pursell 12/14/2012
@Daniel 虽然“修复错误 #1234”确实传达了您所做的工作,但“修复错误 #1234”传达了补丁的作用。使用现在时背后的观点是,消息的目的是传达补丁的作用,而不是开发人员所做的事情。
5赞 Daniel Hilgarth 12/14/2012
@WilliamPursell:如果它能传达补丁的作用,它不应该读作“修复es bug #1234”吗?“修复错误 #1234”是一个命令,它告诉存储库该做什么,正如其他人在他们的回答中已经解释的那样。IMO 这是违反直觉的。
17赞 CB Bailey 12/13/2012 #2

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

  • 描述命令式情绪的变化,例如“make xyzzy do frotz” 而不是“[此补丁] 使 xyzzy do frotz”或“[I] 已更改 xyzzy to do frotz“,就好像你在向代码库下达命令一样 来改变其行为。

从括号内的主语可以看出,此约定消除了对 commit 动词的重复(或隐含)主语的需要,这些主语不会提供任何有用的好处。