写好commit message提高业务效率的方法

发布时间:2023-11-13 11:52:30 作者:栢白
来源:亿速云 阅读:143

本篇文章和大家了解一下写好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 多达十几个,这就非常不得体。

message 格式

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

type

type 就是 commit 的类型:

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提高业务效率的方法的简略介绍,当然详细使用上面的不同还得要大家自己使用过才领会。如果想了解更多,欢迎关注亿速云行业资讯频道哦!

推荐阅读:
  1. 使用Jenkins时如果GIT_COMMIT无变化该怎么办
  2. Docker中如何用commit命令创建镜像

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

commit message

上一篇:Java使用JSON进行文件解析的方法

下一篇:JavaScript中WeakMap的原理与用法介绍

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》