怎样写好commit message提高业务效率

 更新时间:2023年05月12日 14:36:37   作者:ag9920  
这篇文章主要为大家介绍了如何写好commit message帮助业务团队提高效率方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

commit 粒度

commit message 在工程开发中有很重要的作用。一个好的 message 不仅仅能够降低 reviewer 的心智负担,也能够方便日后追踪问题。但写好一个 commit message 可不容易,今天这篇文章我们来思考一下怎样让 commit message 更加清晰,帮助业务团队提高效率。

commit 本质就是一些代码变更的聚合体,我们可能在一个 commit 中改动多个文件。问题的关键在于 commit 的语义和粒度。

这个很多时候很头疼,大 commit 不好 review,每次一看到十几个文件上千行记录在一个 commit 里就很想哭。小 commit 本身是没问题的,但很多时候大家稍微改一点就提一个 commit,导致放眼望去全是意义不大的提交,记录基本没法看。

怎么把握这个度呢?

这里提供一个标准供大家参考:你的 commit 能得体地告诉别人干了一件什么事。

一件事

能拆的要拆,两个语义独立的改动不要放到一个 commit 里面,做好一件事即可,commit 的内容应该是高内聚的,不要出现夹带私活的情况。

只要保证你的 Merge Request 是干净的,信息清晰的就 ok,不要担心一个 MR 对应多个 commit 的问题,该合并就合并,但语义独立的两件事,不要合在一起写。

得体

不要随随便便改一个地方就提交一次,比如这里加了个空行,那里删了个注释,全拆开,倒的确是不同的事,但这样让别人看就很不得体。想象一下,你现在是个教练,本来可以等学员练习好了,看一遍效果给出评价即可,可你的学生每做一个动作就要把你拉过来看看,这时你是什么心态?肯定要崩溃!

软件开发也是如此,明明你是要开发一个需求,结果只有一个 commit 是真正支撑需求的,各种格式优化的 commit 多达十几个,这就非常不得体。

  • 思考每一个 commit 是否必须。一定要记住,不要多写一行多余的代码,否则未来你会很纠结;
  • 学会归纳。合并同类项。

message 格式

<type>(<scope>): <subject>
<空行>
<body>
<空行>
<footer>

type

type 就是 commit 的类型:

  • docs: 文档变更
  • feat: 新需求特性
  • fix: 修复 bug
  • perf: 性能提升
  • style: 代码风格相关
  • test: 测试代码修改
  • refactor: 重构代码
  • chore: 构建过程或辅助工具的变动,日常的修改

scope

scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。这个大家根据业务情况自行约定规范即可。

subject

commit message 的核心部分,说明干了一件什么事,标题性质,简单的修改要做到让大家一看标题就能理解改了什么。

body

对本次 commit 的详细描述,可以分成多行,说明代码变动的动机,以及与以前行为的对比,详细的背景要在这里说清楚。比如

More detailed explanatory text, if necessary.  Wrap it to 
about 72 characters or so. 
Further paragraphs come after blank lines.
- Bullet points are okay, too
- Use a hanging indent

只有在 break change 或者关闭 issue 时使用,场景较少,日常业务开发可以忽略。事实上,能把 subject,body 写好就不容易了。

内容多了怎么办

很多时候大家都直接用 git commit -m "xxx" 来代替,其实建议大家带上 body,很多 commit 光看 subject 跟没看是一样的。

这种情况下,大家直接用 git commit 来提交,跳出文本编辑器,支持大家输入 body。

一定记住,body 不是可有可无,一个优秀的 commit message 要能做到看了就知道前因后果,知道改动原因。而不是留一句片汤话在 subject 上。

语言选择

这一点很多团队会忽视,笔者待过的几乎每个团队,都是中英文混杂,这一点很不好。建议统一语言,如果公司规定开发必须用【英语】,ok 没问题,大家做好准备,提高英语素养,找到每个业务概念最精准的表达,形成规范,落地就行。

但是,但是!!!

绝大多数团队是做不到这一点的,因为没有动力,而且大家都是中国人,很多语言表达即便过了四六级,也很难很精准,于是写的五花八门。

与其这样,不如明确,除了 type,其他全用中文代替。

以上就是怎样写好commit message提高业务效率的详细内容,更多关于commit message提高效率的资料请关注脚本之家其它相关文章!

相关文章

  • Git如何修改已提交的commit注释

    Git如何修改已提交的commit注释

    这篇文章主要介绍了Git如何修改已提交的commit注释问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 如何使用git拉取gitlab上的项目

    如何使用git拉取gitlab上的项目

    这篇文章主要介绍了如何使用git拉取gitlab上的项目问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • 高性能WEB开发 为什么要减少请求数,如何减少请求数!

    高性能WEB开发 为什么要减少请求数,如何减少请求数!

    我们先分析下请求头,看看每次请求都带了那些额外的数据.下面是监控的google的请求头
    2010-05-05
  • UTF-8 BOM 可能导致样式错乱的解决方法

    UTF-8 BOM 可能导致样式错乱的解决方法

    utf-8 是一种在web应用中经常使用的一种 unicode 字符的编码方式,使用 utf-8 的好处在于它是一种变长的编码方式,对于 ANSII 码编码长度为1个字节,这样的话在传输大量 ASCII 字符集的网页时,可以大量节约网络带宽。
    2009-06-06
  • kafka安装过程与可视化工具kafka-eagle

    kafka安装过程与可视化工具kafka-eagle

    这篇文章主要介绍了安装kafka与可视化工具kafka-eagle,在本篇文中,我们详细地教你如何安装kafka,还有它的可视化工具 kafka-eagle,中间也列举了一些异常以及它的处理方式,真正做到了手把手教学,需要的朋友可以参考下
    2023-11-11
  • 15个开发者必须知道的chrome技巧

    15个开发者必须知道的chrome技巧

    这篇文章主要介绍了15个开发者必须知道的chrome技巧,需要的朋友可以参考下
    2017-09-09
  • 编程之显示/隐式声明

    编程之显示/隐式声明

    显示声明 是程序中的一条说明语句,它列出一批变量名并指明这些变量的类型。隐式声明 指通过某种默认协定的方法将变量名与类型绑定。
    2011-01-01
  • vscode入门教程之页面启动与代码调试

    vscode入门教程之页面启动与代码调试

    VScode是微软推出的一款轻量级的编辑器,采用了和VS相同的UI界面。今天小编给大家带来一篇如何使用vscode来进行最基本的工作的小教程,希望大家能够喜欢
    2020-01-01
  • 推荐四款可视化工具(解决99%的可视化大屏需求)

    推荐四款可视化工具(解决99%的可视化大屏需求)

    这篇文章主要介绍了推荐四款可视化工具(解决99%的可视化大屏需求),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-04-04
  • git回退并提交部分修改文件方式

    git回退并提交部分修改文件方式

    本文介绍了如何使用Git进行版本回退和代码提交,首先,通过回退到指定commit,保留工作区代码,接着,使用git status查看仓库状态,将修改的文件通过git add添加到缓存区,最后,提交缓存区的修改到远程仓库,这些操作帮助开发者有效管理代码版本和修改
    2024-10-10

最新评论