公司 git commit message 标准化 分享

最近面试  有人问到  你带了一个团队  当你离开 留下了什么   回想一下    感觉做了很多  但  却无从下口   感觉标准化了很多  但其实 和大厂看来  差距还是太大了   所以   学习之路就在脚下    学吧

 

今天聊聊 commit message标准化    我一直觉得  认真编写 message 就是很严格的要求  但其实  大厂来说   哪怕  message 都要遵循标准的格式  其实可以理解 毕竟标准的格式 就可以演变出 很多优化后的结果

 

目前 市面上 流行的  commit message 格式 就是 angular 提出的 格式

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

Header 是必需的  也就是 <type>(<scope>): <subject>  ,Body 和 Footer 可以省略。   

主要说下Header

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

(1)type

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

feat:新功能(feature)
fix:修补bug
docs:文档(documentation)
style: 格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
test:增加测试
chore:构建过程或辅助工具的变动
如果type为feat和fix,则该 commit 将肯定出现在 Change log 之中。其他情况(docs、chore、style、refactor、test)由你决定,要不要放入 Change log,建议是不要。

(2)scope

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

(3)subject

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

以动词开头,使用第一人称现在时,比如change,而不是changed或changes
第一个字母小写
结尾不加句号(.)

其他内容可以  查看  阮一峰 老师的 讲解  http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html

如果 你去强制  团队的人 做这个  肯定不好推广  且  确实浪费时间  那么 我们使用 插件 去解决这个事吧

Commitizen

指令

//  下载模块
npm install -g commitizen    


// 设置成按照angular规范 编写commit message
commitizen init cz-conventional-changelog --save --save-exact 

剩下操作就可以了    

不要再git  commit -m '斯蒂芬斯蒂芬森发'    使用 指令  git  cz 后  根据控制台可视化的 提交 message

 

下面说说 change log

// 下载模块
npm i -D conventional-changelog-cli

然后  为了方便 .   我们 在 package.json里 定义2个script  快捷操作

"scripts": {
    "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0"
    "commit": "git cz"
  },

这样  npm  run  changelog  就 会在本地 生成  CHANGELOG.md 文件

这样  npm  run  commit  就是 按照 angular标准 完成git 的  commit message 操作

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章