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

Mad*_*iha 34 git commit-message commit

我已经阅读了各种Git教程,包括官方教程,他们似乎都告诉我以现在时态编写Git提交注释是很好的约定和做法.

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

Shi*_*dim 44

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

所以写一个这样的消息

修复bug#1234

代替

修复了#1234的错误

将git日志视为您的操作历史,而不是所有提交的序列描述.

关于它的黑客新闻有一个很大的线索.在那里,你将会有更多理由支持这一惯例.

  • @Daniel虽然"修复了错误#1234"确实传达了你的所作所为,"修复错误#1234"传达了修补程序所做的事情.使用现在时的背后的观点是,消息的目的是传达补丁的功能,而不是开发人员的功能. (4认同)
  • @WilliamPursell:如果它会传达补丁的作用,那么它不应该是"Fix*es*bug#1234"吗?"修复错误#1234"是一个订单,它告诉存储库要做什么,正如其他人已经在他们的答案中解释的那样.IMO反直觉. (3认同)
  • 尽管这个特定的提交消息违反了约定的第二部分,即摘要应该处于命令式的情绪。例如“修复错误 #1234”。 (2认同)

CB *_*ley 13

它只是一个(相对)常见的约定,因此提交项目中的提交信息是一致的.向Git提交补丁的建议(例如)来自Documentation/SubmittingPatches.

  • 描述命令式情绪的变化,例如"make xyzzy do frotz"而不是"[This patch]使xyzzy do frotz"或"[I]将xyzzy改为frotz",好像你是在给代码库命令来改变它的行为.

从括号中的主题中可以看出,该约定消除了对提交动词的重复或替代隐含的主题的需要,其不提供任何有用的益处.