在我和其他程序员共享存储库的项目中,即使我是主要开发人员,我也总是编写提交消息。
但是在那些我是一个项目的单独开发人员的项目中,该存储库托管在我的个人笔记本电脑上,甚至不由客户端托管,因此,除了我自己之外,没有人会看到提交,如果我仍然编写提交,消息?
到目前为止,我一直在写它们,但是我发现我从未回过头来查看我的提交消息。我抽出时间来写下这些消息,但是即使我也再也看不到它们。
作为单独的开发人员写提交消息有什么充分的理由,还是您应该跳过它们而只专注于开发?
在我和其他程序员共享存储库的项目中,即使我是主要开发人员,我也总是编写提交消息。
但是在那些我是一个项目的单独开发人员的项目中,该存储库托管在我的个人笔记本电脑上,甚至不由客户端托管,因此,除了我自己之外,没有人会看到提交,如果我仍然编写提交,消息?
到目前为止,我一直在写它们,但是我发现我从未回过头来查看我的提交消息。我抽出时间来写下这些消息,但是即使我也再也看不到它们。
作为单独的开发人员写提交消息有什么充分的理由,还是您应该跳过它们而只专注于开发?
Answers:
好吧,这是一个原因:如果您突然意识到在最近的几百次提交中有问题(如果每次进行较小的编辑都可能提交,或者像我一样仅提交“稳定”快照,则不太可行),则可以更轻松地进行操作如果您编写的是清晰的提交消息,而不是“错误修正”,请找到在哪里插入了错误。(我相信是同事最喜欢的字符串)。当然,您可以使用svn log
或使用任何其他的SCM,但是反过来应该更容易。
还承诺邮件迫使你觉得究竟你已经为改变做,我相信,在你的心中怎么会是最好的继续改善项目总结。
我总是尝试。您回头多少次思考,“请问当我进行此更改时我在做什么”。我一直在做。编写一条消息30秒钟可以为您节省20分钟的工作时间,使您难以忘怀。
我一直是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
。
尽管您还没有发现查看提交消息的需要,但是您将来可能会非常感激。您甚至应该自己编写它们。它们在以后可能有用的原因有很多(您忘记了为什么要添加功能,找到丢失的文件等)。
这是有关提交消息的目的的一个相关问题:为什么我要编写提交消息
我始终会提供有关更改的有意义的消息,而我经常会进行增量更改。
这总是最有用的东西吗?不,这样做没有问题。如果您需要返回到进行中的上一个阶段,您的消息将使您知道自己的位置和所做的事情。它也可以用来跟踪项目的进度。至于被视为浪费时间,写下一个句子所花的30秒真的那么重要吗?