返回顶部
首页 > 资讯 > 前端开发 > JavaScript >js前端架构Git commit提交规范
  • 613
分享到

js前端架构Git commit提交规范

2024-04-02 19:04:59 613人浏览 安东尼
摘要

目录git commit 规范为什么要写好 Git Commit?如何写好Git Commit利用插件(commitizen)Git hooks客户端 Hooks服务端 Hooks项

Git commit 规范

在工作中避免不了多人协作,协作避免不了有一个规范的流程,让大家有效的去合作;让项目有条不紊的进行。自然使用 git 规范进行把控也是项目中必不可少的技术了。

为什么要写好 Git Commit?

  • 提供更多的历史信息,方便快速浏览
  • 可以过滤某些commit(比如文档改动),方便快速查找信息
  # 过滤日志信息
  git log HEAD --pretty=fORMat:%s --grep 关键字
  • 可以直接从commit生成Change log

如何写好Git Commit

业界使用比较广泛的是angular规范

<type>(<scope>):<subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
  • 标题行:必填,描述主要修改类型和内容
  • 主要内容:描述为什么修改,做什么样的修改,以及开发的思路等等
  • 页脚注释:放 Breaking Changes 或 Closed Issuses

type | commit 类型

类型详细介绍
feat新功能、新特性
fixbugfix,修改问题
refactor代码重构
docs文档修改
style代码格式修改,注意不是CSS修改
test测试用例修改
chore其他修改,比如构建,依赖管理

scope | commit影响的范围 比如:route、component、utils、build.....

  • subject:commit 的概述,建议符合 50/72 formatting
  • body:commit 具体修改内容,可以分为多行,建议符合50/72 formatting
  • footer:一些备注,通常是BREAKING CHANGE 或 修改的bug链接

利用插件(commitizen)

利用commitizen,提交规范的commit。

  • commitizen 用于提示用户输入或选择,生成规范的commit
  • cz-conventional-changelog 用于生成changelog
# 1. 下载cz-conventional-changelog changelog插件 
npm install -g commitizen cz-conventional-changelog
# 2. package.JSON 配置

{
    "scripts": { 
    # 以后提交commit 直接执行npm run commit
       "commit": "git-cz",
    },
    # config用来设置一些项目不怎么变化的项目配置,用户用的时候可以使用如下用法:process.env.npm_package_config_commitizen
    "config": {
      "commitizen": {
        "path": "./node_modules/cz-conventional-changelog"
      }
  }
}

# 也可以使用以下配置,配置全局变量
# 命令行中输入以下命令,配置到czrc目录下,也可以用vim编辑~/.czrc添加到文件中去{ "path": "cz-conventional-changelog"}
echo '{ "path": "cz-conventional-changelog"}' > ~/.czrc

自定义文档格式,commit用中文去写(扩展)

# 1.下载
npm install -g cz-customizable
# 2. package.json 配置
...
"config": {
  "commitizen": {
    "path": "node_modules/cz-customizable"
  },
  "cz-customizable": {
    "config": "./cz.config.js"
  }
}

# 也可以使用以下配置,配置全局变量
echo '{ "path": "cz-customizable"}' > ~/.czrc
# echo添加或vim编辑添加
vim .czrc
# 添加配置 { "path": "cz-customizable"}

# 3.创建配置文件
touch ./cz.config.js

cz.config.js

module.exports = {
  //可选类型
  types: [
    { value: 'feat', name: 'feat:   新功能' },
    { value: 'fix', name: 'fix:   修复' },
    { value: 'docs', name: 'docs:   文档变更' },
    { value: 'style', name: 'style:   代码格式(不影响代码运行的变动)' },
    {
      value: 'refactor',
      name: 'refactor:重构(既不是增加feature),也不是修复bug'
    },
    { value: 'perf', name: 'perf:   性能优化' },
    { value: 'test', name: 'test:   增加测试' },
    { value: 'chore', name: 'chore:   构建过程或辅助功能的变动' },
    { value: 'revert', name: 'revert:   回退' },
    { value: 'build', name: 'build:   打包' },
    { value: 'revert', name: 'revert:   回退' }
  ],
  //消息步骤
  messages: {
    type: '请选择提交类型',
    customScope: '请输入修改范围(可选)',
    subject: '请简要描述提交(必填)',
    body: '请输入详细描述(可选)',
    footer: '请输入要关闭的issue(可选)',
    confirmCommit: '确认以上信息提交?(y/n)'
  },
  //跳过问题
  skipQuestion: ['body', 'footer'],
  //subject文字长度默认是
  subjectLimit: 72
}

gitmoji(趣味图标-扩展)

npm i -g gitmoji-cli
gitmoji -c # git commit 提交

Git hooks

Git 钩子(hooks)是在Git仓库中特定事件(certain points)触发后被调用的脚本

可以用git init初始化git文件,在.git/hooks下有各种钩子模版,可以用例如less prepare-commit-msg.sample查看文件,里面是一段执行脚本。

  • 客户端钩子-> 由诸如提交和合并这样的操作所调用
  • 服务端钩子-> 作用于诸如接收被推送的提交这样的联网操作

客户端 Hooks

类型详细介绍
prepare-commit-msgcommit message编辑器呼起前 default commit message创建后触发,常用于生成默认的标准化的提交说明
commit-msg开发者编写完并确认commit message后触发,常用于校验提交说明是否标准
post-commit整个git commit完成后触发,常用于邮件通知、提醒
applypatch-msggit am提取补丁并 应用于当前分支后,准备提交触发,常用于执行测试用例或检查缓冲区代码
pre-applypatchgit am提交后触发,常用于通知、补丁、邮件推送回复(此钩子不能停止git am过程)
pre-rebase执行git rebase命令时触发
post-rewrite执行会替换commit的命令时触发,比如git rebase 或 git cimmit-amend
post-checkout执行git checkout命令成功后触发,可用于生成特定文档,处理大二进制文件等
post-merge成功完成一次merge行为后触发
pre-auto-GC执行垃圾回收前触发

服务端 Hooks

类型详细介绍
pre-receive当服务端收到一个push操作请求时触发,可用于检测push的内容
update与pre-receive相似,但当一次push想更新多个分支时,pre-receive只执行一次,而此钩子会为没一分支都执行一次
post-receive当整个push操作完成时触发,常用于服务侧同步、通知

项目使用

Git Husky

用node实现的的快速安装git hooks的工具

// npm install husky --save-dev
// package.json
{
  "husky" : {
    "hooks": {
       "pre-commit": "npm test",
        // ......
    }
  }
}

命令行 less .git/hooks/pre-commit 查看pre-commit文件,可以看见"(dirname"(dirname "(dirname"0")/husky.sh",然后可以查看less .git/hooks/husky.sh

link-staged

只会检测暂存区的文件,不会对所有的文件进行检测,也就是说我修改一个文件,只会检测当前这个文件

 # 安装代码检测工具
 npm install prettier eslint -D
 # 安装lint-staged
 npx mrm lint-staged
{
"gitHooks": {
    "pre-commit": "lint-staged"
  },
{
  "lint-staged": {
    "*.js": "eslint --cache --fix",
    "*.{js,css,md}": "prettier --write"
  }
}

以上就是js前端架构Git commit提交规范的详细内容,更多关于js架构Git commit规范的资料请关注编程网其它相关文章!

--结束END--

本文标题: js前端架构Git commit提交规范

本文链接: https://lsjlt.com/news/153470.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • js前端架构Git commit提交规范
    目录Git commit 规范为什么要写好 Git Commit如何写好Git Commit利用插件(commitizen)Git hooks客户端 Hooks服务端 Hooks项目...
    99+
    2024-04-02
  • Git提交规范是什么
    本篇内容介绍了“Git提交规范是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、为什么需要规范无规矩...
    99+
    2024-04-02
  • Git Commitizen提交规范化自动生成changelog文件
    目录背景介绍Commitizen 介绍自动产生CHANGELOG背景介绍 我们在使用一个比较厉害的框架或者库的时候,经常可以看到 CHANGELOG.md,维护版本更新内容。 很多时...
    99+
    2024-04-02
  • JS前端模块化规范的示例分析
    这篇文章将为大家详细讲解有关JS前端模块化规范的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Script 标签其实最原始的 JavaScript 文件加载方式,...
    99+
    2024-04-02
  • 浅谈JS前端模块化的几种规范
    目录前言前端模块化开发的价值恼人的命名冲突繁琐的文件依赖模块化的好处CommonJS 规范CommonJS 与 ES6 模块的差异AMD 规范CMD 规范UMD 规范回到正题总结前言...
    99+
    2024-04-02
  • JS前端架构pnpm构建Monorepo方式管理demo
    目录 写在前面 什么是Monorepo?什么是pnpm? 搞一个Monorepo的demo玩玩 安装依赖 packageA中引用packageB 写在最后 写在前面 Monorepo...
    99+
    2024-04-02
  • 前端开发效率提高的代码规范有哪些
    这篇文章主要讲解了“前端开发效率提高的代码规范有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“前端开发效率提高的代码规范有哪些”吧!常见的命名规则1.大...
    99+
    2024-04-02
  • JS前端架构pnpm怎么构建Monorepo方式管理demo
    今天小编给大家分享一下JS前端架构pnpm怎么构建Monorepo方式管理demo的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下...
    99+
    2023-07-02
  • 规范GIT代码提交信息和自动化版本管理的方法
    本篇内容介绍了“规范GIT代码提交信息和自动化版本管理的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言git作为一个开发人员必不可少...
    99+
    2023-06-27
  • 如何使用layui前端框架弹出form表单以及提交
    小编给大家分享一下如何使用layui前端框架弹出form表单以及提交,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!第一步: 引用...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作