Git版本管理工具使用知识汇总

版本管理在软件开发中是非常重要的,版本管理可以有效的降低代码版本丢失风险,极大的方便了软件开发中不同版本代码的管理。

本文内容包括:

  • 如何使用git工具
  • 规范化commit信息的格式
  • 使用commitlint验证commit信息的格式是否符合规范
  • 使用husky强制执行commit格式的规范化验证
  • 如何在代码提交前对代码格式验证
  • 最后封装成一键脚本自动化配置 commitizen

版本管理工具有很多:

  • svn :中心化在线版本管理控制工具,老旧的版本管理工具。
  • git :分布式版本控制工具,支持离线版本管理,目前主流的版本管理工具。

安装Git

Git网站

这里有不同平台的所有安装包,安装后你可以通过git命令或者GUI窗口进行版本管理。

了解Git命令

初学者对git版本管理有点迷糊,没关系,这里有个Git CheatSheet 帮你快速理解Git的工作原理及命令的作用。

访问 Git Cheat Sheet 学习一下Git命令用法。

规范化commit信息格式

由于commit 提交信息的作用是描述本次提交的改动信息及原因,可往往开发者处于懒惰而省略了很多描述信息,这将导致我们对git项目提交信息的管理变得困难,因此就产生了 commitizen 工具,帮我们规范化 代码提交信息。

提交信息可以告诉阅读这当前提交做了些什么变更,是代码修改了或者文档变更等等。这样,阅读这可以选择性的审阅代码内容。可以让提交信息更加有价值和实际的意义。

常规的commit的message格式规范化(主流Angular规范)如下:

<header>
<空行>
<body>
<空行>
<footer>
  • 目前很少用到,本用于更详细的说明每一个改动点,但对于每次只提交一小部分改动的变更,只需要填写subject概述信息就足够了。

  • 包含有关重大更改和弃用的信息,常规小改动很少用到。 若看到 **"BREAKING CHANGE: " ** 表示本次提交有重大改动,而 "DEPRECATED: " 则表示本次提交弃用了某些内容。
  • <header> 包含提交信息的概述,必填字段,此部分信息的常用Angular规范格式如下:

<type>(<scope>?): <subject>│       │             ││       │             └─⫸变更内容概述信息,英文不区分大小写,行末不能有句点(.)结束.│       ││       └─⫸ 提交范围,可选字段.│└─⫸ 提交类型(变更分类): build|ci|docs|feat|fix|perf|refactor|test

Type 字段取值含义:

  • feat : 新增加功能特性
  • fix : 修复bug
  • refactor: 一些代码结构上的优化,没有新特性和bug修复.
  • perf : 性能优化的代码改动
  • release: release版本提交
  • chore: 一些与主要业务无关的构建/工程依赖/工具等功能改动
  • ci : CI持续集成提交变更
  • docs: 文档更新
  • style: 码的样式美化,不涉及到功能修改等
  • test: 测试代码相关新增或变更

Scope字段为影响范围,很少用到,想了解可以去阅读Angular Commit Message Guidelines 详细相关说明。

Subject内容通常为提交内容的概述文本,用于说明本次提交做了哪些改动,以及改动原因或目标等。

到这里,我们基本了解了commit常用的规范化格式信息,当然Angular规范化格式只是比较流行的其中一种,还有些其他类似的格式,这里不再介绍。

开始安装commitizen规范化工具

每次都按照上面格式人工拼写难免会有出错的可能,所以下面就来介绍如何通过工具来辅助我们实现 规范化的commit文本提交。

  • comitizen工具源码Github地址 : 这是项目源码地址,想了解源码的可以看看。
  • comitizen使用文档网站 : 这里介绍了如何使用此工具实现规范化提交,当然是英文文档。

安装 commitizen工具

npm安装方式有两种,本地安装和全局安装,个人比较推荐全局安装,养成一个好的版本提交规范化习惯很重要。

前提依赖:

  • Git
  • Node.js 12/14/16

全局安装方法:

npm install -g commitizen
或者
npm install --location=global commitizennpm install -g cz-conventional-changelogecho '{ "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-czmodule.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: '												

Git版本管理工具使用知识汇总相关推荐

  1. git版本管理工具学习

    1.git版本管理工具作用:a.备份b.像时光机一样回到过去,防止错误删除c.多端共享d,独当一面和团队协作 2早起的版本管理工具:CVS,集中式管理工具 github是git的一个托管网站:GitH ...

  2. Git——版本管理工具(一)

    Git 是一个分布式版本控制工具,它的作者 Linus Torvalds 是这样给我们介绍 Git  -- The stupid content tracker(傻瓜式的内容跟踪器) 1. Git 背 ...

  3. Git 版本管理工具(一)

    Git 是一个分布式版本控制工具,它的作者 Linus Torvalds 是这样给我们介绍 Git  -- The stupid content tracker(傻瓜式的内容跟踪器) 1. Git 背 ...

  4. Git版本管理工具使用详细介绍

    一.引言 跟你们吐槽一下,最近小编的工作制度也改成996,怎么说? 是好是坏呢? 网上很多小伙伴也在吐槽,刚开始小编也是挺反感的,毕竟之前周末一些坚持的习惯,因此都需要改变. 既然公司选择了996,我 ...

  5. Git 版本管理工具命令速查

    转自:http://www.jb51.net/article/55442.htm 一. Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态  git co ...

  6. Git版本管理工具的使用

    一.下载安装 windows: https://git-for-windows.github.io/,下载文件后一路next linux: # ubuntu,debian# $ sudo apt-ge ...

  7. git版本管理工具用法介绍

     1. 概要 Git 是 Linux 发明者 Linus 开发的一款新时代的版本控制系统,对于软件开发领域来说版本控制是最重要的一环,而 Git 毫无疑问是当下最流行.最好用的版本控制系统. 2. ...

  8. Git版本管理工具超详细(下载、安装、远程仓库的搭建、git指令)

    目录 01_Git概述 02_GIT相关概念(掌握) 03_Git下载与安装 04_Git本地操作-初始化工作区 05_Git本地操作-add与commit 06_Git本地操作-差异比较 07_Gi ...

  9. git版本管理工具push失败解决方案参考

    git clone xxx@xx 版本后,edit某文件,commit之后,点push,提示报错. 可能有以下原因: 1.权限不够,远程仓库的文件夹(比如/home/git)下面的文件所属用户非git ...

  10. Git版本管理工具常用命令整理和说明

    作者:心叶 时间:2018-04-20 23:20 工作区:就是你在电脑里能看到的目录. 暂存区:英文叫stage, 或index.一般存放在 ".git目录下" 下的index文 ...

最新文章

  1. Android NDK开发-3-环境搭建
  2. python读文件操作-python文件操作-读写删除复制总结
  3. python剑指offer替换空格_02_替换空格【python】
  4. JZOJ 5931. 【NOIP2018模拟10.27】冒泡排序
  5. 字符串url获取参数_如何从URL查询字符串获取示例参数或将其附加到URL查询字符串(示例)?...
  6. chackbox的值 php获取_最详细最全的PHP面试题(附答案)
  7. client netty 主动发数据_netty案例,netty4.1基础入门篇十一《netty udp通信方式案例Demo》...
  8. 灰色关联与TOPSIS法 —— python
  9. 恒大俱乐部每年亏损数亿,为何马云还不卖掉手中的股份?
  10. windows java路径问题_java 文件路径问题
  11. C/C++学习笔记 指针1
  12. Mysql根据日志恢复数据
  13. 计算机硬件报警声音,电脑开机报警声音大全详解及处理
  14. App渠道安装来源识别与匹配
  15. OpenCore 黑苹果安装教程
  16. 捆绑影视IP,玩跨界营销,你真学不会!
  17. [机缘参悟-13]:菩提心,一切“利他”之心
  18. 水浒传108将都是怎么死的
  19. 开源数据中心资产管理系统openDCIM 官方WIKI翻译
  20. 『 kaggle』kaggle-DATA-SCIENCE-BOWL-2018(U-net方法)

热门文章

  1. 笔记本电脑插网线显示未识别的网络_笔记本插入网线,显示未识别网络
  2. “神奇小子”于品海 再展零成本收购绝技
  3. 【重磅】聚焦券商终端业务,博睿数据发布新一代券商终端核心业务体验可观测平台
  4. 关于使用 ajax上传文件 Easyui的框架 input标签中 filebox属性取赋值操作问题
  5. IMDB评分排名算法
  6. 为什么保持代码整洁如此重要?
  7. 魔兽世界私服架设 服务器架设简易教程
  8. An Underwater Image Enhancement Benchmark Dataset and Beyong
  9. 《文言文复兴系列 5 人之道》(江湖一剑客)
  10. [转载野猪的一篇文章] 设计模式--简单工厂模式在unity3d里面的使用