作为单独开发人员编写提交消息?


30

在我和其他程序员共享存储库的项目中,即使我是主要开发人员,我也总是编写提交消息。

但是在那些我是一个项目的单独开发人员的项目中,该存储库托管在我的个人笔记本电脑上,甚至不由客户端托管,因此,除了我自己之外,没有人会看到提交,如果我仍然编写提交,消息?

到目前为止,我一直在写它们,但是我发现我从未回过头来查看我的提交消息。我抽出时间来写下这些消息,但是即使我也再也看不到它们。

作为单独的开发人员写提交消息有什么充分的理由,还是您应该跳过它们而只专注于开发?


14
很好,当您第一次必须返回时,“我从未回过头并查看过我的提交消息”,可能会为您提供一个很好的理由。实际上,穿上你的鞋子,我可能会做无声的提交,直到第一次回击发生
t

5
“即使我是主要开发人员,我也总是写提交消息。” 您认为这很不正常吗?当然,主要开发人员应该编写消息,甚至比其他开发人员(他们本来应该100%的时间)编写消息的能力更高。
AlbeyAmakiir 2012年

7
当您开始维护软件的旧版本(而不仅仅是最新版本)时,提交消息就是纯金。

Answers:


43

好吧,这是一个原因:如果您突然意识到在最近的几百次提交中有问题(如果每次进行较小的编辑都可能提交,或者像我一样仅提交“稳定”快照,则不太可行),则可以更轻松地进行操作如果您编写的是清晰的提交消息,而不是“错误修正”,请找到在哪里插入了错误。(我相信是同事最喜欢的字符串)。当然,您可以使用svn log或使用任何其他的SCM,但是反过来应该更容易。

还承诺邮件迫使你觉得究竟你已经为改变做,我相信,在你的心中怎么会是最好的继续改善项目总结。


13
+1为最后一段。我发现编写正确的提交消息几乎需要零时间,因为我一直都知道为什么要进行更改。
斯蒂芬·达林顿

5
对于我的独奏,在进行某些工作之前,我要提交提交信息。我做了一件小事(目标是30-45分钟,在这里有一个妻子和孩子们!),然后执行它。也许您可以将其称为提交驱动开发?
corsiKa 2012年

52

我总是尝试。您回头多少次思考,“请问当我进行此更改时我在做什么”。我一直在做。编写一条消息30秒钟可以为您节省20分钟的工作时间,使您难以忘怀。


12
在创建每月报告时也有帮助。提交消息列表是该报告的一个很好的起点
mhoran_psprep

2
是的,实际上,您只需要花费一次就可以偿还评论所需的时间。
tzerb 2012年

20

老实说,您是否相信以纯英文输入大约40至80个字符的开销对于提交来说是相当大的开销,还是您正在寻找一个懒惰的借口?

也许您的问题是用简单的英语表达您为什么进行更改,在这种情况下,您可能需要查看更改的目的,甚至问自己是否确实需要这样做。

我的建议是不要以为单飞会违反规则。始终保持专业,并添加有意义的提交消息。正如其他回复者所指出的那样,有一天您会感激的。


14
  • 您将不会永远是一个单独的开发人员。

  • 您最终将破坏您的代码库并尝试还原它。良好的提交消息将节省您的时间。

  • 您不记得三周前的工作了吧?

  • 提交消息应该非常清楚。如果不是,则说明您尚未完成某个任务的工作,或者单个任务分散在两个或多个任务上。


7

当然,否则您将使分支和合并之类的功能难以使用。你想,即使独奏开发人员使用他们。


6

可能的原因之一:它迫使您对所做的更改进行更抽象的思考,并组织更改。

如果感觉毫无用处,则可以只评论主要更改或更改现有功能的更改,以防您一直在寻找奇怪行为的来源。


有趣的是要重新考虑这个答案。我最近采取了某种极端的立场:根本没有提交消息。但这是在一个相当扁平的HTML / JS项目上,我无法想象曾经试图追踪回归。花费在编写提交消息上的任何努力几乎肯定会更好地花费在其他地方。(并非所有项目都属于此类!)
史蒂夫·贝内特

4

我一直是TXR项目的唯一提交者,并且从该项目的早期就保留了详细的ChangeLog。这接近11,000行,并且还在不断增长:http : //www.kylheku.com/cgit/txr/tree/ChangeLog

(存储库中的提交消息只是ChangeLog中内容的副本。)

[2016编辑:截至2015年中,我不再维护ChangeLog文件;但是,提交消息以同时符合Git和ChangeLog约定的格式编写。那里的详细程度相同,不会引起合并问题。可以从这些注释中机械地重建一个ChangeLog文件。]

是的,我不止一次地返回与更改相关的旧提交消息,该更改破坏了某些东西(在的帮助下被发现git bisect)。该信息帮助我了解自己在做什么。

在ChangeLog中,您可以知道何时首次引入函数,类型,宏或全局变量,以及随后何时被更改触及。

但是,在自己工作时编写此类详细提交消息的主要原因是:在执行此操作时会发现错误

编写详细的提交消息与其他人对您的提交进行代码审查的好处相似。提交审查的价值不在于有人正在检查您的代码,而是您必须向其他开发人员解释所做的更改。

当您尝试解释事物时,有时会发现它们没有意义。

另一个原因:您会发现自己进行了无用的更改。通过编写详细的提交注释,您可以大致了解自己的工作,然后有时会遇到这样的事实,那就是这不是一个很好的更改。

我有时会进行更改,在编写ChangeLog条目的过程中,我意识到这将是git reset --hard(丢弃这些无用的更改)而不是git commit -a


3

尽管您还没有发现查看提交消息的需要,但是您将来可能会非常感激。您甚至应该自己编写它们。它们在以后可能有用的原因有很多(您忘记了为什么要添加功能,找到丢失的文件等)。

这是有关提交消息的目的的一个相关问题:为什么我要编写提交消息


3

我始终会提供有关更改的有意义的消息,而我经常会进行增量更改。

这总是最有用的东西吗?不,这样做没有问题。如果您需要返回到进行中的上一个阶段,您的消息将使您知道自己的位置和所做的事情。它也可以用来跟踪项目的进度。至于被视为浪费时间,写下一个句子所花的30秒真的那么重要吗?


3

无论您是否在团队中工作,我都看不到关于提交消息的任何区别。您会记得在有限的时间内在这里或那里所做的事情,此后,就像其他人写的一样。因此,您应该编写与其他人一样好的信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.