赞
踩
版本管理在软件开发中是非常重要的,版本管理可以有效的降低代码版本丢失风险,极大的方便了软件开发中不同版本代码的管理。
本文内容包括:
版本管理工具有很多:
这里有不同平台的所有安装包,安装后你可以通过git命令或者GUI窗口进行版本管理。
初学者对git版本管理有点迷糊,没关系,这里有个Git CheatSheet 帮你快速理解Git的工作原理及命令的作用。
访问 Git Cheat Sheet 学习一下Git命令用法。
由于commit 提交信息的作用是描述本次提交的改动信息及原因,可往往开发者处于懒惰而省略了很多描述信息,这将导致我们对git项目提交信息的管理变得困难,因此就产生了 commitizen 工具,帮我们规范化 代码提交信息。
提交信息可以告诉阅读这当前提交做了些什么变更,是代码修改了或者文档变更等等。这样,阅读这可以选择性的审阅代码内容。可以让提交信息更加有价值和实际的意义。
常规的commit的message格式规范化(主流Angular规范)如下:
<header>
<空行>
<body>
<空行>
<footer>
目前很少用到,本用于更详细的说明每一个改动点,但对于每次只提交一小部分改动的变更,只需要填写subject概述信息就足够了。
<header>
包含提交信息的概述,必填字段,此部分信息的常用Angular规范格式如下:
<type>(<scope>?): <subject>
│ │ │
│ │ └─⫸变更内容概述信息,英文不区分大小写,行末不能有句点(.)结束.
│ │
│ └─⫸ 提交范围,可选字段.
│
└─⫸ 提交类型(变更分类): build|ci|docs|feat|fix|perf|refactor|test
Type 字段取值含义:
Scope字段为影响范围,很少用到,想了解可以去阅读Angular Commit Message Guidelines 详细相关说明。
Subject内容通常为提交内容的概述文本,用于说明本次提交做了哪些改动,以及改动原因或目标等。
到这里,我们基本了解了commit常用的规范化格式信息,当然Angular规范化格式只是比较流行的其中一种,还有些其他类似的格式,这里不再介绍。
每次都按照上面格式人工拼写难免会有出错的可能,所以下面就来介绍如何通过工具来辅助我们实现 规范化的commit文本提交。
npm安装方式有两种,本地安装和全局安装,个人比较推荐全局安装,养成一个好的版本提交规范化习惯很重要。
前提依赖:
全局安装方法:
npm install -g commitizen
或者
npm install --location=global commitizen
npm install -g cz-conventional-changelog
echo '{ "path": "cz-conventional-changelog" }' > ~/.czrc
本地安装方法:
npm install --save-dev commitizen
安装完毕后,使用conventional-changelog
初始化项目,命令如下:
commitizen init cz-conventional-changelog --save-dev --save-exact
如果遇到错误,提示已经初始化过,可以使用--force
参数强制重新初始化一次。
执行成功后,我们看到当前项目多了如下几个文件和目录:
node_modules package.json package-lock.json
其中 package.json
文件内容多了如下部分:
{
"devDependencies": {
"cz-conventional-changelog": "^3.3.0"
},
"config": {
"commitizen": {
"path": "./node_modules/cz-conventional-changelog"
}
}
}
到这里,我们就可以使用 git cz
命令提交规范化文本信息了:
对于英文不好的朋友,还可以使用
git-cz
替代commitizen
, 应为git-cz
支持配置定制,我们可以配置后实现中文提示,效果如下:这样是不是很人性化呢? 具体使用可以直接访问Github项目地址 ,安装后,在项目根目录下添加如下文件即可达到效果:
// 文件名: changelog.config.js // 作用: commit 规范化配置 // 参考文档:https://github.com/streamich/git-cz module.exports = { disableEmoji: true, // format: '{type}{scope}: {emoji}{subject}', list: ['test', 'feat', 'fix', 'chore', 'docs', 'refactor', 'style', 'ci', 'perf', 'build'], maxMessageLength: 72, minMessageLength: 3, questions: ['type', 'scope', 'subject', 'body', 'breaking', 'issues', 'lerna'], scopes: [], types: { chore: { description: '一些与主要业务无关的构建/工程依赖/工具等功能改动', emoji: '
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/909265
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。