怎样写commit log记录及如何提交有哪些约定

 更新时间:2022年06月14日 11:08:54   作者:小姐姐味道  
这篇文章主要为大家介绍了怎样写commit log记录以及及如何提交有哪些约定,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

前言

据说,80%的程序员,不会写commit记录。这个比例在无规范的小公司,比例会更高一些,可以看到这是一个多么普遍的问题。

程序员应该写出简洁明了的commit log,否则对别人和自己来说就是一种困扰。最近代码review多了,总有一股想笑的感觉。就像下图这满屏的ok,永远无法从中得知提交人的意图。

commit log将如何提交?都有哪些约定?其实是有答案的。对于Java程序员,尤其幸福。IDEA有一个非常好用的插件,可以用来辅助你进行代码提交,辅助你进行团队规范建设。接下来,我将带大家看一看它的使用方法。

安装插件

在IDEA的Marketplace中,搜索Git Commit Template,就可以安装这个插件。插件很小,很快就能下载下来。

正常从IDEA提交代码的时候。我们发现多了一个小按钮。

点击之后,将弹出一个窗口。让你去设计提交模板。

这么多信息,真的让人头晕。怪不得程序员们都不喜欢写提交记录。

其实,在插件的安装界面,就已经说明了这个提交记录的格式。

 <type>(<scope>): <subject>
 <BLANK LINE>
 <body>
 <BLANK LINE>
 <footer>

从描述中,可以肯容易的看到一个提交记录中,应该包含哪些东西。其中类型最多的,当然是提交类型。

提交类型Type

我们按照插件显示的顺序来说明一下。

feat 功能feature的意思,也是最常用的。当你的功能有变更的时候,都可以采用这种类型的type

fix 当然指的是bug修复

docs 更新了文档,或者更新了注释

style 代码格式调整,比如执行了format、更改了tab显示等

refactor 重构代码。指的是代码结构的调整,比如使用了一些设计模式重新组织了代码

perf 对项目或者模块进行了性能优化。比如一些jvm的参数改动,把stringbuffer改为stringbuilder等

test 这个简单,就是增加了单元测试和自动化相关的代码

build 影响编译的一些更改,比如更改了maven插件、增加了npm的过程等

ci 持续集成方面的更改。现在有些build系统喜欢把ci功能使用yml描述。如有这种更改,建议使用ci

chore 其他改动。比如一些注释修改或者文件清理。不影响src和test代码文件的,都可以放在这里

revert 回滚了一些前面的代码

除了这些预设的,团队还可以按照自己的需求,增加新的type。比如专门处理线上工单,就可以创造一个叫做ticket的类型。

范围scope

scope是范围的意思,主要指的是代码的影响面。scope并没有要求强制,但团队可以按照自己的理解进行设计。通常由技术维度和业务维度两种划分方式。比如按照技术分为:controllerdtoservicedao等。但因为一个功能提交,会涉及到多个scope(都不喜欢非常细粒度的提交),所以按照技术维度分的情况比较少。

按照业务模块进行划分,也是比较不错的选择。比如分为userorder等划分,可以很容易看出是影响用户模块还是order模块。

如果你实在不知道怎么填,那就留空。

其他

主题subject

这个体现的是总结概括能力,没得跑。一句话能够说明主要的提交是什么。subject也是众多git管理工具默认显示的一行。如果你写的标准,那么提交记录看起来就很漂亮很规整。

正文Body

主要填写详细的改动记录。我一般习惯列上1234,但如果你的subject写的非常好,正文可以直接弱化。但如果时间充裕,填写上重要记录的前因后果,需求背景,是一个好的习惯。

尾部Footer

添加一些额外的hook,比如提交记录之后,自动关闭jira的工单(JIRA和gitlab等是可以联动的)。在比如触发一些文档编译或者其他动作。

这部分自定义行也是比较强的。

Skip CI

最后还有一个skip CI选项。一般的ci工具,都可以设置提交代码时自动触发编译。但你可以告诉它忽略本次提交。这可能是因为你提前预判到了一些构建风险,或者就是不想编译。

End

最后,看一个典型的提交记录,有了工具的支持,我们的瞎扯也看得正经起来。

fix(order): 修复了1分钱买汽车的bug
商务反馈可以1分钱买汽车,目前已经卖出了100w量
Closes #2455
[skip ci]

其实,提交的核心是typesubject。一个用来表示它的提交类型,一个用来对提交进行概括性总结,写好了这两点,就能轻轻松松秒杀80%的程序员了。

有了这些基础,从commit log,自动生成change log,就变的非常的容易。配合持续集成平台,自动生成发版的变更记录,也是可行的,这也是为什么团队管理,都在一直强调git的提交规范。因为它确实非常有用。

以上就是怎样写commit log记录及如何提交有哪些约定的详细内容,更多关于commit log记录提交约定的资料请关注脚本之家其它相关文章!

相关文章

  • 详解vscode使用git所遇到的坑

    详解vscode使用git所遇到的坑

    这篇文章主要介绍了详解vscode使用git所遇到的坑,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 如何解决vscode中ESLint和prettier冲突问题

    如何解决vscode中ESLint和prettier冲突问题

    这篇文章主要给大家介绍了关于如何解决vscode中ESLint和prettier冲突问题的相关资料,ESLint和Prettier之间可能会发生冲突,因为它们都是用于代码规范化的工具,但它们的规则和格式化方式可能不同,需要的朋友可以参考下
    2023-11-11
  • 实例详解esp8266解析json数据的方法

    实例详解esp8266解析json数据的方法

    这篇文章主要介绍了实例详解esp8266解析json数据的方法,主要包括要解析的json文件,反序列化数据获取到对象中,通过串口监视器输出解析后的数据信息,需要的朋友可以参考下
    2022-03-03
  • 关于postman上传文件执行成功而使用collection runner执行失败的问题

    关于postman上传文件执行成功而使用collection runner执行失败的问题

    这篇文章主要介绍了关于postman上传文件执行成功而使用collection runner执行失败的问题,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • win11 C盘出现锁和黄色感叹号的解决方法

    win11 C盘出现锁和黄色感叹号的解决方法

    这篇文章主要介绍了win11 C盘出现锁和黄色感叹号的解决方法,文中有详细的解决方案,对大家的解决问题有一定的帮助,需要的朋友可以参考下
    2007-02-02
  • 水晶报表 分页 的问题

    水晶报表 分页 的问题

    在论坛上经常会看到水晶报表分页的问题,这个很好解决。但是自动插入空白行的问题却一直没有很好的答案,经过研究找到一个变通的办法来实现了。
    2009-04-04
  • GIt的基本操作详解

    GIt的基本操作详解

    本文主要介绍了GIt的基本操作。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • 解决IDEA GIT记录无法查看提交文件的问题

    解决IDEA GIT记录无法查看提交文件的问题

    这篇文章主要介绍了解决IDEA GIT记录无法查看提交文件的问题,本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • 老生常谈计算机中的编码问题(必看篇)

    老生常谈计算机中的编码问题(必看篇)

    下面小编就为大家带来一篇老生常谈计算机中的编码问题(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • IE 浏览器安全级别详情及区别小结

    IE 浏览器安全级别详情及区别小结

    排查问题时,定位到可能和当前浏览器的安全级别设置有关,顺便整理了下Windows 7下IE9安全级别的详情内容,及各安全级别下的默认设置差异
    2016-01-01

最新评论