专栏首页技术-分享git commit 规范
原创

git commit 规范

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

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • https介绍

    假设A和B通过web进行通信,由于http是明文协议,双方发送的信息相当于在网上裸奔,双方的通信内容能够轻易的被窃听、篡改和冒充,因此,我们期望对通信加密。常见...

    jaykan
  • 一篇文章学会使用 gitk,排查 Git 问题就靠它了

    现在软件开发已经离不开版本控制系统。版本控制系统不仅能保留每个文件所有版本的历史信息,还能够方便查找。另外,也能够让团队协作不受空间和时间的限制。

    DevOps时代
  • 如何在 Git 里撤销(几乎)任何操作

    git技能 任何版本控制系统的一个最有的用特性就是“撤销 (undo)”你的错误操作的能力。在 Git 里,“撤销” 蕴含了不少略有差别的功能。 当你进行一次...

    小小科
  • Git 使用流程推荐

    下面是ThoughtBot 的Git使用规范流程。我从中学到了很多,推荐你也这样使用Git。

    javascript.shop
  • 运维开发:你可能会忽略的 Git 提交规范

    如果你有一个项目,从始至终都是自己写,那么你想怎么写都可以,没有人可以干预你。可是如果在团队协作中,大家都张扬个性,那么代码将会是一团糟,好好的项目就被糟践了。...

    小小科
  • Git 使用规范流程

    团队开发中,遵循一个合理、清晰的Git使用流程,是非常重要的。 否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护。 下面是Thoug...

    ruanyf
  • Git 使用规范流程

    团队开发中,遵循一个合理、清晰的Git使用流程,是非常重要的。否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护。

    用户6543014
  • 刷爆github小绿点

    转载请注明出处:工程地址,欢迎star!!! 首先github统计小绿点的逻辑是这样的:戳 然后,某次因为某些原因删工程,发现,对应的小绿点也不见了,并且str...

    梦里茶
  • git 将多个commit id 打包成一个或者是多个commit id

    我们有时候会出现频繁提交代码的问题,可能多个commit id 实际上一个作用,为了让git log看起来更清晰,我们会将多个commit id 合并成若干个c...

    张凝可
  • 使用 git 篡改历史

    有时候我们需要修改 git 历史提交的文件内容,如果只是在前一个 commit,那么只需要修改文件并执行 --amend 即可:

    JS菌

扫码关注云+社区

领取腾讯云代金券