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

目录
  • commit 粒度
    • 一件事
    • 得体
  • message 格式
    • type
    • scope
    • subject
    • body
  • 内容多了怎么办
  • 语言选择

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提高效率的资料请关注我们其它相关文章!

(0)

相关推荐

  • Git Commitizen提交规范化自动生成changelog文件

    目录 背景介绍 Commitizen 介绍 自动产生CHANGELOG 背景介绍 我们在使用一个比较厉害的框架或者库的时候,经常可以看到 CHANGELOG.md,维护版本更新内容. 很多时候,特别是在你开源自己的一个工具或库时,这种版本更新内容是非常有必要的,如果用户使用了你的轮子,连更新内容都不知道,试问你敢用吗? 那么这些都是怎么写的呢?每次发版都要手动记录吗?显然不是,这些都是靠提条记录生成的. 比如我们在 github 上随便找一个库:https://github.com/vuepre

  • Java Git Commit Message使用规范

    目录 概述 一.Commit message 的格式 1.1 Header 1.2 Body 二.例子 2.1 feat例子 2.2 fix例子 插件推荐 概述 不知道大家在各自项目中是如何写提供代码的commit message, 我们项目有的同事写的很简单,压根不知道提交了什么内容,是新功能还是缺陷修复.本质上 commit message就是为了让团队成员知道这次提交的内容,为此,我们出了一个规范,约定团队的每个同事按照这个规范提交代码,达到通过message能够了解此次修改的内容. 一.

  • 如何使用工具规范前端项目的commits与changelog技巧

    目录 前言 Conventional Commits 规范 对于简短描述的扩充填写,可选 哪些工具可以组合起来规范我们的 commit? Commitizen cz-customizable commitlint standard-version 安装配置 1. 安装 commitizen 和 cz-customizable 2. 安装 commitlint 3. 安装 standard-version 总结 前言 项目的 Changelog 文件作为记录版本之间的差异和变更的主要“公示板”,主

  • MySQL查询优化:LIMIT 1避免全表扫描提高查询效率

    在某些情况下,如果明知道查询结果只有一个,SQL语句中使用LIMIT 1会提高查询效率. 例如下面的用户表(主键id,邮箱,密码): 复制代码 代码如下: create table t_user( id int primary key auto_increment, email varchar(255), password varchar(255) ); 每个用户的email是唯一的,如果用户使用email作为用户名登陆的话,就需要查询出email对应的一条记录. SELECT * FROM t

  • [Asp.Net Core]提高开发效率的方法

    一.概述 在园子里面有很多关于各种技术细节的研究文章,都是比较牛逼的框架研究:但是一直没有看到关于怎么样提高开发效率的文章,大多提高开发效率的文章都是关于自动化等方面的辅助工具类型的,而不是开发中的一些小技巧:今天从编码规范.编码技巧.开发思想.设计模式等各方面的经验来分享如何提高开发效率. 二.实际场景 在这个前后端分离盛行的开发年代,分工比较明确,开发者分前端开发者和后端开发者,然而感到欣慰的是.net 开发者大多是担任着全栈开发的职责,有经验的开发者都是从前端走过来的,说白了前端业务代码对

  • PHP编程开发怎么提高编程效率 提高PHP编程技术

    用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则 不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的"函数"(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加 上了双引号). 1.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍. 2.$row['id'] 的速度是$row[id]的7倍. 3.echo 比 print 快,并且使用echo的多重参数(译注:指用

  • 用Python调用win命令行提高工作效率的实例

    作为程序猿,每天一上班打开电脑要做的时候就是打开各种工作所需的工具,如QQ,SQL Server,浏览器,编辑器等,每天都要一个个点,重复性的工作做多了也觉得烦(关键是影响了我上班倒水的时间). 于是就寻思着用python写一个简单的脚本来帮我一次性打开这些东西,解放我的双手,让我有时间去倒水. 环境是win10 64 Python3.6.5,使用到的模块是os,webbrowser. 其实实现的原理很简单,就是在相当于在win下的dos打开程序一样. 举个例子:如果我要打开我的qq. 在win

  • IDEA提高开发效率的7个插件(推荐)

    1. 多行编辑 先来体验一下从xml文件拷贝字段新建实体对象 一般我们为了新建多表连接后映射的 ResultMap ,耗费不少时间,那么我们就来试一试这个多行编辑 表字段存在下划线,而实体中不允许,更是讨厌 ,等着一招教你解决 前提条件,安装一个idea的插件,用来驼峰与下划线互转的:CamelCase 步骤: ① 多行选择,按住ALT(windows)/option(Mac) ,拉动鼠标就可 ② 选中字段对象 Win Ctrl+shift+左箭头 Mac option+shift+左箭头 ③

  • git 一个可以提高开发效率的命令:cherry-pick详解

    各位码农朋友们一定有碰到过这样的情况:在develop分支上辛辛苦苦撸了一通代码后开发出功能模块A,B,C,这时老板过来说,年青人,我们现在先上线功能模块A,B.你一定心里一万只草泥马奔腾而过,但为了混口饭吃必须得按老板的意思办事啊. 怎么办?一个办法就是,重新建一个分支,然后再把功能模块C回退,留下功能模块A,B.这种做法不是不行,但是有更好的办法,那就是git所提供的cherry-pick功能. cherry-pick类似于一个定制化的merge,它可以把其它分支上的commit一个个摘下来

  • 如何使用JS console.log()技巧提高工作效率

    我们知道 console.log(message)用法很简单,表示将参数message 打印到控制台上. console.log('前端小智') // 前端小智 const myAge = 28 console.log(myAge) // 28 本文主要介绍5个有用的技巧,可帮助你在使用console.log()时提高工作效率. 1. 打印全名变量 如果在控制台打印多个变量,是数量比较多的情况下,我们很难区别哪个变量对应哪个值. function sum(a, b) { console.log(

  • python 提高开发效率的5个小技巧

    很多时候学习是一种难者不会,会者不难的事情. 下面的5个python技巧是性价比极高的知识点,一学就会,不难但是相当管用. 使用交互模式 使用python -i xxxx.py可以直接进入python的交互模式,可以很方便的调用xxxx.py中定义的方法和函数,特别适合调试没有main()方法的文件,强力推荐. 使用pdb进行调试 很多从c++/java转到python的同学可能对python没有断点功能相当失望. 其实python自带的pdb库就可以解决这个问题. 看这个例子. def sum

  • 20个提高开发效率的VS Code快捷键(推荐)

    以下为译文: 并不是每一个开发者都有足够的时间,去了解熟悉所有的快捷键,来帮助我们提高编码效率.因为快捷键实在是太多了. 所以,下面我列出了我最喜欢的快捷键. 1.多行转一行 在 MAC 上:Ctrl + J 在 Ubuntu/Windows 上:通过File> Preferences > Keyboard shortcuts打开快捷键的设置,并且绑定editor.action.joinLines你自己的快捷键. 2.格式化代码 这个快捷键可以帮助我们对代码进行缩进. 注:可以在编码的任何时候

  • 强烈推荐IDEA提高开发效率的必备插件

    前言 今天小编给大家推荐几款值得剁手的插件,真的很实用,安装就对了,在工作中,我们可能会时常因为编码效率,而烦恼,可能有时候并不是我们的编码效率不高,只是我们没用对方法,没用到好的工具,能够节省我们的开发时间,这是小编在开发中常使用的一些插件,所以推荐给大家. 一.Lombok插件 Lombok项目是一个Java库,它会自动插入您的编辑器和构建工具中,从而使您的Java更加生动有趣. 永远不要再写一个get.set或equals方法,一个注释就能够帮您的类有一个功能全面的生成器,自动化帮你生成你

随机推荐

其他