约定式提交

约定式提交

约定式提交规范是一种基于提交消息的轻量级约定。它提供了一组用于创建清晰的提交历史的简单规则;这使得编写基于规范的自动化工具变得更容易。

feat: allow provided config object to extend other configs

约定式提交的格式


<类型>[可选的作用域]: <描述>

[可选的正文]

[可选的脚注]

Header (<类型>[可选的作用域]: <描述>)  

header包含三部分内容: type(必需),scope(可选)和subject(必需)

type

用于说明commit的类型,常见的类型有:

feat: 新功能
fix: 修补bug
docs: 文档的变更
style: 格式(不影响代码运行的变动)
refactor: 重构(即不是新增功能,也不是修改bug的代码变动)
perf: 用于性能改进的代码提交
test: 用于添加或修改现有测试
build: 修改影响到了系统的构建或外部依赖
ci: 修改CI配置文件或相关的脚本
revert: 用于撤销以前的commit
chore: 其他一些不影响源码或测试文件的代码变动

scope

用于说明commit影响的范围,比如数据层,控制层,视图层等等。

subject

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

Body( [可选的正文] )

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

填写要求:使用第一人称现在时,比如使用change而不是changed或changes。应该说明代码变动的动机,以及与以前行为的对比。

Footer( [可选的脚注] )

Footer部分只用于两种情况

不兼容变动

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

BREAKING CHANGE: isolate scope bindings definition has changed.
To migrate the code follow the example below:
    Before:
        scope: {
            myAttr: 'attribute',
        }
    After:
        scope: {
            myAttr: '@',
        }
The removed `inject` wasn't generaly useful for directives so there should be no code using it.

关闭Issue

Closes #234
Closes #123, #245, #992

示例


// 包含了描述以及正文内有破坏性变更的提交说明
feat: allow provided config object to extend other configs
BREAKING CHANGE: `extends` key in config file is now used for extending other config files

// 包含了可选的 ! 字符以提醒注意破坏性变更的提交说明
chore!: drop Node 6 from testing matrix
BREAKING CHANGE: dropping Node 6 which hits end of life in April

// 不包含正文的提交说明
docs: correct spelling of CHANGELOG

// 包含作用域的提交说明
feat(lang): add polish language

// 为 fix 编写的提交说明,包含(可选的) issue 编号
fix: correct minor typos in code
see the issue for details on the typos fixed
closes issue #12

工具


使用commitizen

需提前安装nodejs(官网下载地址)

git cz

安装步骤:

全局安装commitizen node 模块

npm install -g commitizen

在项目目录下运行

npm init --yes
如果是node项目,可直接运行
commitizen init cz-conventional-changelog --save --save-exact

运行完以上步骤就可以使用git cz 替代 git commit 来提交代码,同时会显示选项来自动生成符合格式的commit message.

git cz

git-cz

npm install -g commitizen git-cz

git-cz

使用Git Commit Message Helper

安装方式

idea -> settings -> plugins -> 搜索Git Commit Message Helper

git commit message helper

使用方式

提交时打开idea commit(ctrl+k)

点击上图红框标识部位,会出现如下弹框,之后便可以在该弹框中填写具体的commit信息。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,478评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,825评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,482评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,726评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,633评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,018评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,513评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,168评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,320评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,264评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,288评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,995评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,587评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,667评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,909评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,284评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,862评论 2 339