Git Message能引发极度温馨?

总有理由

本人半强迫症患者一枚,看到各类提交fix bug xxx,甚至连xxx都没有,在回溯问题的时候一头雾水,只能逐个文件找问题。难。。。react

因此我的认为Git Message成为回溯问题的一个迅速肯定问题的关键。git

那什么样的Message是优秀的呢? 原则又是什么呢?就拿咱们一直团队实践的准则来讲一说。github

提交代码有原则(粒度)

项目代码稳定以后,每次提交都要考虑提交的粒度问题,尽可能作到 baby stepexpress

  • 没有关联的代码不能一次commit提交
  • 关联代码一次提交;若内容不少,可内部分层,依次提交

能够根据当前代码模块状况处理。bash

必须提交Commit Message

  • 没有Commit Message 固然不能提交
  • 不在 git commit 上增长 -m <msg>--message=<msg> 参数,而单独写提交信息

不推荐ide

git commit -m "Fix login bug"
复制代码

推荐工具

angular的GitHub的Commitui

Fix(filterFilter): fix filtering using an object expression when the …
…filter value is undefined

Fixes #10419
Closes #10424
复制代码

Commit Message分段写

Commit Message 分三个部分, header, body, footer. 其中,header 是必需的,body 和 footer 能够省略。 无论是哪个部分,任何一行都不得超过100个字符,以避免影响阅读性。this

[<team>]<type>(<scope>): <subject>

<body>

<footer>&emsp;
复制代码
[FE]Fix(card): fix card edit, support to unuse item

在card修改里面,添加配置item未使用功能
复制代码

header

Header部分只有一行,包括四个字段:type(必需)、scope(可选)、team(可选)和subject(必需)。spa

type

用于说明 commit 的类别,只容许使用下面7个标识。

Add:新加功能

Fix:修补bug

Modify:移除无用代码

Remove:移除第三方模块或者移除文件

Update:更新第三方模块

Style: 格式(不影响代码运行的变更)

Chore:构建过程或辅助工具的变更
复制代码

scope

scope用于说明 commit 影响的范围,好比数据层、控制层、视图层等等,视项目不一样而不一样。

例如在shrezone,能够是file, card, image, short_video等。

若是你的修改影响了不止一个scope,你可使用*代替。

team

当不一样的team一块儿编写代码的时候,带team以区分工做区域

subject

subject是 commit 目的的简短描述,不超过50个字符。

其余注意事项:

以动词开头,使用第一人称如今时,好比change,而不是changed或changes

第一个字母小写

结尾不加句号(.)
复制代码

Body

Body 部分是对本次 commit 的详细描述,能够分红多行。

好比react的提交

Sync out another jsx transform test.

We added this test internally and it never got added here. We haven't broken it with any transforms *yet* but it's still good to actually run all of our tests
here too.
复制代码

注意点:

使用第一人称如今时,好比使用change而不是changed或changes。

要和header之间有一个空行

应该说明代码变更的动机,以及与之前行为的对比。
复制代码

Footer

Footer 部分只用于如下两种状况:

不兼容变更

若是当前代码与上一个版本不兼容,则 Footer 部分以BREAKING CHANGE开头,后面是对变更的描述、以及变更理由和迁移方法。

关闭 Issue

若是当前 commit 针对某个issue,那么能够在 Footer 部分关闭这个 issue 。

Revert

一种特殊状况,若是当前 commit 用于撤销之前的 commit,则必须以revert:开头,后面跟着被撤销 Commit 的 Header。

revert: feat(pencil): add ‘graphiteWidth‘ option

This reverts commit 667ecc1654a317a13331b17617d973392f415f02
复制代码

最后

固然在不少时候,也不能每次都按照规范来写Commit Message,可是最起码每次重要的提交都能写,关键时候有用。

固然有人会用打tag的方式来代表重要节点,可是毕竟物尽其用,个有所长。

若是爱好使用工具的朋友也能够自行研究:

相关文章
相关标签/搜索