Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >git commit 规范

git commit 规范

原创
作者头像
jaykan
修改于 2020-03-15 11:23:14
修改于 2020-03-15 11:23:14
1.9K0
举报
文章被收录于专栏:技术-分享技术-分享

1. 为什么需要commit规范

a)提供更多的历史信息,方便快速浏览和项目接入以及交接

b)可以过滤某些commit(比如文档改动),便于快速查找信息

c)可以直接从commit生成Change log(需要工具支持)

2. 配置git commit提交模板

目前git commit规范使用较多的是Angular 团队的规范

模板格式:

<type>(<scope>): <subject>

<空行>

<body>

<空行>

<footer>

具体字段解释参考:

https://www.conventionalcommits.org/zh-hans/v1.0.0-beta.4/

2.1 手工配置方法

a)首先将下面内容拷贝至:~/.git-commit-template

# Type(<scope>): <subject> # <body> # <footer> # type 字段包含: # feat:新功能(feature) # fix:修补bug # docs:文档修改(documentation) # style: 代码格式修改(不影响代码运行的变动) # refactor:代码重构(即不是新增功能,也不是修改bug的代码变动) # test:测试用例修改 # chore:其他修改, 比如构建流程, 依赖管理,或辅助工具的变动 # # scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等。 # # subject是 commit 目的的简短描述,不超过50个字符 # # Body 部分是对本次 commit 的详细描述,每行不超过70个字符,可以分成多行 # 50/70规则参见: # https://stackoverflow.com/questions/2290016/git-commit-messages-50-72-formatting # # Footer用来关闭 Issue或以BREAKING CHANGE开头,后面是对变动的描述、 # 以及变动理由和迁移方法 # # 关于git commit常用规范简单介绍,参见这里 #https://www.conventionalcommits.org/zh-hans/v1.0.0-beta.4/

b)配置git template:

git config --global commit.template ~/.git-commit-template

c) 提交代码,按照模板填写commit

git commit

2.2 简单例子

commit时按模板填写,注意空行

提交完成后git log查看

以上就完成了git commit提交规范的手工配置,如果希望在提交时自动按提示完成commit输入,则参考下面第3小节

3. git commit自动化工具

目前比较流行的工具是commitizen:

https://github.com/commitizen/cz-cli

安装过程如下:

3.1 安装升级node版本

ubuntu安装node和npm,其他系统类似:

apt install nodejs-dev

apt install npm

commitizen需要node版本>8.0,满足要求的跳过。ubuntu升级最新稳定版方法如下:

npm cache clean -f

sudo npm install -g n

sudo n stable

3.2 安装配置commitizen

a)安装

npm install -g commitizen

b)配置项目初始化package.json

进入git项目根目录,执行

npm init --yes

c)配置Angular规范的Commit message

commitizen init cz-conventional-changelog --save --save-exact

3.3 commit测试

安装完成之后,当需要git commit的时候换成 git cz 即可,commitizen 会按照规范提示commit msg的书写。例如:

3.4 安装changelog工具

changelog工具用于根据argular规范的commit message生成项目changlog文档

安装如下2个工具:

npm install -g conventional-changelog

npm install -g conventional-changelog-cli

当完成commit之后,使用如下命令生成changelog

conventional-changelog -p angular -i CHANGELOG.md -s

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Git】:Commit规范 + CHANGELOG生成
从 git commit 的 message 开始进行规范化(主流:angular 规范),进而可以通过工具(例如:conventional-changelog)把关键信息找出来,并自动生成到 CHANGELOG 中。
WEBJ2EE
2020/12/02
5K0
【Git】:Commit规范 + CHANGELOG生成
让你的 commit 更有价值
AngularJS 在开发者文档1中关于 git commit 的指导说明,提到严格的 git commit 格式规范可以在浏览项目历史的过程中看到更易读的信息,并且能用 git commit 的信息直接生成 AngularJS 的 change log 。
陈大鱼头
2021/01/18
1.2K0
让你的 commit 更有价值
别乱提交代码了,看下大厂 Git 提交规范是怎么做的
现在市面上比较流行的方案是约定式提交规范(Conventional Commits),它受到了Angular提交准则的启发,并在很大程度上以其为依据。约定式提交规范是一种基于提交消息的轻量级约定。
IT大咖说
2020/02/21
2.1K0
别乱提交代码了,看下大厂 Git 提交规范是怎么做的
git commit 规范及自动化
白墨石
2023/10/07
5870
【推荐】git commit 规范和如何在 commit 里使用 emoji
大家好,我是桃翁,今天给大家带来的是关于 git commit 那些事儿,希望大家喜欢。
桃翁
2021/09/09
2.4K0
【推荐】git commit 规范和如何在 commit 里使用 emoji
Commitizen 从0到1(git commit 规范工具)
commitizen git commit 格式化工具, 为我们提供标准化的 commit 信息。 帮助我们统一项目commit , 便于信息的回溯或日志的生成。# commit message 格式
copy_left
2021/07/01
1.3K0
你可能已经忽略的git commit规范
在日常的开发工作中,我们通常使用 git 来管理代码,当我们对代码进行某项改动后,都可以通过 git commit 来对代码进行提交。
前端森林
2020/04/23
2.9K0
你可能已经忽略的git commit规范
受够了!这糟糕的git commit记录
你是否再也无法忍受随意的风格?每次更新版本都不清楚更新了哪些功能?修复了哪些 bug?溯源的时候非常痛苦?不如试试国际知名项目angular.js的提交规范
机智的程序员小熊
2021/06/21
9540
受够了!这糟糕的git commit记录
Git提交信息规范化
message信息格式采用目前主流的Angular规范,这是目前使用最广的写法,比较合理和系统化,并且有配套的工具。
奋飛
2019/08/14
2.1K0
Commit message 和 Change log 编写指南
Git 每次提交代码,都要写 Commit message(提交说明),否则就不允许提交。 $ git commit -m "hello world" 上面代码的-m参数,就是用来指定 commit
ruanyf
2018/04/13
9350
Commit message 和 Change log 编写指南
commitlint 从0到1 (git commit 校验工具)
'https://github.com/conventional-changelog/commitlint/#what-is-commitlint',
copy_left
2021/07/01
1.6K0
别乱提交代码了,看下大厂 Git 提交规范是怎么做的!
现在市面上比较流行的方案是约定式提交规范(Conventional Commits),它受到了Angular提交准则的启发,并在很大程度上以其为依据。约定式提交规范是一种基于提交消息的轻量级约定。它提供了一组用于创建清晰的提交历史的简单规则;这使得编写基于规范的自动化工具变得更容易。这个约定与SemVer相吻合,在提交信息中描述新特性、bug 修复和破坏性变更。它的 message 格式如下:
Erwin
2020/02/11
1.1K0
别乱提交代码了,看下大厂 Git 提交规范是怎么做的!
现在市面上比较流行的方案是约定式提交规范(Conventional Commits),它受到了Angular提交准则的启发,并在很大程度上以其为依据。约定式提交规范是一种基于提交消息的轻量级约定。它提供了一组用于创建清晰的提交历史的简单规则;这使得编写基于规范的自动化工具变得更容易。这个约定与SemVer相吻合,在提交信息中描述新特性、bug 修复和破坏性变更。它的 message 格式如下:
芋道源码
2020/02/10
1.2K0
开发流程规范 — commit及其之后的阶段
在执行 git commit 后,首先要通过 pre-commit-msg hook 对更改的文件进行代码格式、测试用例检查,这个时机点检查既不会影响开发过程,又能做统一的收敛,性价比很高。如果直接配置 git hooks,会比较麻烦而且不便于多人合作开发,所以这里使用 husky 库设置:
张宗伟 plus
2022/10/28
8000
开发流程规范 — commit及其之后的阶段
还在用git commit -m 吗?Git 提交规范和自动产生changelog手摸手教程。
我们在使用一个比较厉害的框架或者库的时候,经常可以看到CHANGELOG.md,维护版本更新内容。
星宇大前端
2022/03/09
1.5K0
还在用git commit -m 吗?Git 提交规范和自动产生changelog手摸手教程。
Git commit message 和工作流规范
腾讯IVWEB团队
2017/03/13
3.5K0
前端自动化部署的深度实践
之前我都是手动修改CHANGELOG.md,用来记录更新日志,感觉操作起来有点心累,也不是很规范。好在已有前人种树,于是我就考虑利用conventional-changelog-cli自动生成和更新CHANGELOG.md,真的好用!
程序员白彬
2020/07/10
1.1K0
前端自动化部署的深度实践
git commit规范化实践
最近从svn转到git进行代码版本控制,今天了解了git commit规范化的一些知识后,写此文章记录下配置过程。
寻找石头鱼
2019/08/20
1.3K0
git commit规范化实践
编写优雅的 commit message 并自动生成 changelog
http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html
木子星兮
2020/09/07
2.6K1
编写优雅的 commit message 并自动生成 changelog
lerna最佳实践
在介绍我们今天的主角 lerna 之前,首先了解下什么是 multirepo ?什么是 monorepo ?
astonishqft
2022/05/10
2K0
lerna最佳实践
相关推荐
【Git】:Commit规范 + CHANGELOG生成
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档