前言
本文将介绍Git代码提交规范的重要性,详细讲解规范的制定和实施,以及如何通过规范化团队代码管理来提高开发效率和代码质量。
为什么要制定统一的代码提交规范
- 方便其他人维护和阅读
- 过滤某些commit,便于快速查找信息
- 直接从commit生成CHANGELOG
- 可读性好,清晰,不必深入看代码可了解当前commit的作呕用
- 代码审查
- 跟踪工程历史
- …
业界通用的Git提交规范
- Angular团队的规范
AngularJS 在 github上 的提交记录被业内许多人认可,逐渐被大家引用。
规范
type(scope): subject
// 空一行
description
// 空一行
Breaking changes
// 空一行
Closes issues
type(必须)
commit的类别,只允许使用下面几个标识:
- feat:一个新的需求
- fix:一个BUG修复
- docs:文档修改
- style:项目排版的调整,不会影响整体业务逻辑
- refactor:某个已有功能的重构
- perf:一个提升系统性能的修改
- test:测试相关调整
- build:修改了build工具
- ci:修改了CI相关配置文件或脚本
- chore:构建过程或辅助工具的变动
- revert:回滚某个提交
scope(可选)
用于说明commit的影响范围,如某某模块等等,视情况调整
subject(必须)
本次提交的简短描述,一般不超过50个字符
description(可选)
一个较长的提交描述
breaking changes(可选)
一个破坏性的说明
Closes issues(可选)
提交用于关闭某一个需求
例子
feat(订单模块): 新增微信支付功能
feat(订单模块): 新增微信支付功能
通过微信支付xxx接入
工具OR模板
Idea
使用Git Commit Template
插件
-
在Idea的插件市场搜索Git Commit Template,然后安装
-
在代码提交窗口使用插件
-
根据实际情况选择相应的类型,并填写提交描述
-
点击
OK
后,自动生成符合规范的提交信息
命令行提交
方式一:直接按格式手撸提交信息
git commit -m "fix: 修改空指针异常"
方式二:commitizen
前提:本机正确安装Nodejs环境并配置相关环境变量
https://www.runoob.com/nodejs/nodejs-install-setup.html
使用CMD或PowerShell执行命令行
-
全局安装commitizen
npm install -g commitizen npm install -g cz-conventional-changelog
验证安装结果
npm ls -g -depth=0
-
在用户目录如
C:\Users\chenruiying
下新建.czrc
文件,写入如下内容{ "path": "cz-conventional-changelog" }
-
进入项目文件夹,执行下面的命令
commitizen init cz-conventional-changelog --save --save-exact
-
使用
git cz
代替git commit
提交代码
方式三:设置git commit模板
-
建立模板文件,在项目根目录新建
.git_template
文件type(scope): subject
-
设置模板
git config commit.template .git_template // 当前项目 git config --global commit.template .git_template
-
提交代码,使用
git commit
触发编辑
生成CHANGELOG
在项目根目录执行以下命令
安装工具
npm install -g conventional-changelog-cli
追加
不会覆盖以前的CHANGELOG,只会在CHANGELOG.md的头部加上自从上次发布以来的变动
conventional-changelog -p angular -i CHANGELOG.md -s
全量生成
conventional-changelog -p angular -i CHANGELOG.md -s -r 0