Ski*_*ick 491 git commit-message
我读过一次 git提交消息应该是命令现在时,例如"为x添加测试".我总是发现自己使用过去时,例如"为x添加测试",这对我来说感觉更自然.
这是最近的John Resig提交,显示了二合一消息:
在操作测试中调整一些jQuery set结果.还修复了预期测试结果的顺序.
有关系吗?我应该使用哪个?
mip*_*adi 555
对于现在时,命令式风格的提交消息的偏好来自Git本身.来自Git 仓库中的Documentation/SubmittingPatches:
描述你在命令式情绪中的变化,例如"make xyzzy do frotz"而不是"[This patch] make xyzzy do frotz"或"[I]将xyzzy改为frotz",好像你是在给代码库命令更改它行为.
所以你会看到很多以这种风格编写的Git提交消息.如果您正在团队或开源软件上工作,那么每个人都坚持这种风格以保持一致性会很有帮助.即使你正在从事一个私人项目,并且你是唯一一个能够看到你的git历史的人,但是使用命令式的情绪是有帮助的,因为它建立了良好的习惯,当你与他人合作时会受到赞赏.
Mat*_*ley 337
您的项目几乎总是使用过去时态.在任何情况下,项目应始终使用相同的时态以保持一致性和清晰度.
我理解其他一些争论使用现在时的论点,但它们通常不适用.以下要点是用现在时写作的常见论据,以及我的回答.
这是人们想要使用现在时的最正确的理由,但只有正确的项目风格.这种思维方式将所有提交视为可选的改进或功能,您可以自由决定在特定存储库中保留哪些提交以及拒绝哪些提交.
如果您正在处理真正分布式项目,则此参数有效.如果您正在处理分布式项目,那么您可能正在开发一个开源项目.如果它真的是分布式的,它可能是一个非常大的项目.实际上,它可能是Linux内核或Git.由于Linux可能是导致Git传播和普及的原因,因此很容易理解为什么人们会认为它的风格是权威.是的,这两个项目的风格是有道理的.或者,通常,它适用于大型开源分布式项目.
话虽这么说,源代码管理中的大多数项目都不会像这样工作.对于大多数存储库来说,它通常是不正确的.这是一种思考提交的现代方式:Subversion(SVN)和CVS存储库几乎不支持这种类型的存储库签入.通常,集成分支处理过滤不良签入,但这些通常不被视为"可选"或"可用的功能".
在大多数情况下,当您提交到源存储库时,您正在编写一个日记条目,该条目描述了此更新的更改,以便将来更容易理解为何进行更改.它通常不是可选的变更 - 项目中的其他人需要合并或变更.如"亲爱的日记,今天我不写日记条目满足一个男孩和他说我打招呼.",而是你写"我遇到了一个男孩,他说我打招呼."
最后,对于此类非分布式项目,一个人阅读提交消息的99.99%的时间用于阅读历史记录 - 历史记录以过去时态读取.0.01%的时间决定是否应该应用此提交或将其集成到其分支/存储库中.
不,我向你保证,在版本控制系统中登录的大多数项目都有过去时的历史记录(我没有引用,但它可能是正确的,考虑到现在的时态参数是自Git以来的新内容).现在时的"修订"消息或提交消息只在真正的分布式项目中开始有意义 - 请参阅上面的第一点.
见第一点.一个人阅读提交消息的99.99%的时间用于阅读历史记录 - 历史记录以过去时态读取.0.01%的时间决定是否应该应用此提交或将其集成到其分支/存储库中.99.99%击败0.01%.
我从来没有见过一个好的论点,说使用不正确的时态/语法,因为它更短.对于标准的50个字符的消息,您平均只能保存3个字符.话虽如此,现在的时态平均可能会缩短几个字符.
门票被写成当前正在发生的事情(例如,当我点击此按钮时应用程序显示错误的行为),或者将来需要完成的事情(例如,文本需要编辑审阅).
历史(即提交消息)是作为过去完成的事情编写的(例如,问题已得到修复).
Abi*_*ern 78
我写了一篇关于365git的更全面的描述.
命令式现在时的使用需要一点点习惯.当我开始提及它时,遇到了阻力.通常沿着"提交消息记录我所做的事".但是,Git是一个分布式版本控制系统,可能有很多地方需要进行更改.而不是写出说出你所做的事情的信息; 将这些消息视为应用提交将执行的操作的说明.而不是拥有标题的提交:
Renamed the iVars and removed the common prefix.
有这样一个:
Rename the iVars to remove the common prefix
这告诉某人应用提交会做什么,而不是你做了什么.此外,如果你查看你的存储库历史记录,你会发现Git生成的消息也是用这个时态写的 - "Merge"不是"Merged","Rebase"不是"Rebased",所以用同样的时态写入可以保持一致.起初感觉很奇怪,但确实有意义(申请时提供推荐书)并最终变得自然.
说完了所有这些 - 这是你的代码,你的存储库:所以建立你自己的指导方针并坚持下去.
但是,如果您决定采用这种方式,那么
git rebase -i
使用reword选项将是一件好事.
war*_*rdw 15
你在为谁写信息?并且该读者通常在提交之前或之后阅读消息吗?
我认为从这两个角度给出了很好的答案,我或许还没有提出每个项目都有最好的答案.分裂投票可能也表明了这一点.
即总结:
该消息主要是针对其他人的,通常是在他们做出改变之前的某个时刻阅读:提出改变的内容将对他们现有的代码做什么.
该消息主要是作为您自己(或您的团队)的日记/记录,但通常从假设变更的角度阅读并回顾发现发生的事情.
无论哪种方式,这可能会为您的团队/项目带来动力.
Mic*_*dry 11
有关系吗?人们通常足够聪明,可以正确地解释消息,如果他们不是,你可能不应该让他们访问你的存储库!
归档时间: |
|
查看次数: |
85591 次 |
最近记录: |