首页 > 其他分享 >从0到1的手把手教你配置项目git提交规范及其执行顺序

从0到1的手把手教你配置项目git提交规范及其执行顺序

时间:2023-09-28 14:55:06浏览次数:39  
标签:npm git 手把手 顺序 提交 commit msg husky

从 0 到 1 的手把手教你配置项目 git 提交规范及其执行顺序

这里以 React 项目为例

    1. 初始化一个项目
 npx create-react-app my-app --template typescript
 cd  my-app
 npm start
    1. 初始化 git
  git init
    1. 安装 husky 并进行配置
 npm i husky
 # 根据node_modules/husky/README.md中的说明进行配置

 npm pkg set scripts.prepare="husky install"


 npm run prepare

 npx husky add .husky/pre-commit ""

 npx husky add .husky/commit-msg ""


    1. 写配置文件
 # 按照上面的顺序执行之后会在你的项目根目录下生成.husky 目录并且下面会生成两个文件,commit-msg 和 pre-commit
 # 打开.husky/commit-msg 文件,将下面的内容复制到里面

commit_msg_file=$1
commit_msg=$(cat $1)
regex="^[A-Z][A-Za-z0-9]*[0-9]+[A-Za-z0-9]*(\W)+$" # 将 YOUR_CUSTOM_REGEX 替换为你自己的正则表达式

if ! echo "$commit_msg" | grep -iqE "$regex"; then
  echo "无效的提交的信息!"
  echo "请按照这个正则:$regex 来提交"
  exit 1
fi


 # 打开.husky/pre-commit 文件,将下面的内容复制到里面
 # 这个功能主要是进行 代码格式的校验和自动格式化

    1. 完成配置测试
 git add ./
 git commit -m "1231"
 # 校验失败
 git commit -m "A1bcd!"
 # 校验成功

错误/警告采集器

问题 ❓:
hint: The '.husky/commit-msg' hook was ignored because it's not set as executable.
hint: You can disable this warning with git config advice.ignoredHook false.

解决方案

标签:npm,git,手把手,顺序,提交,commit,msg,husky
From: https://www.cnblogs.com/gjzsa/p/17735796.html

相关文章

  • 在github中创建空分支
    需求描述有时候我们需要用到空分支,即该分支不需要任何提交历史,不需要继承master分支的内容。例如,在做githubwiki时候,我喜欢把图片放在同个项目的目录下【一是没用图床,二是可以利用git管理图片】;或者像是docker镜像,sql文件等补充性的内容也希望能有一个空分支做单独管理等等,而不......
  • 5. 用Rust手把手编写一个Proxy(代理), 通讯协议建立, 为内网穿透做准备
    用Rust手把手编写一个Proxy(代理),通讯协议建立,为内网穿透做准备项目++wmproxy++gite:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh/wmproxy什么是通讯协议?在tcp的流传输过程中,可以看做是一堆的字节的集合体,是一种“流”式协议,就像河里的水,中间......
  • git 报错Access denied
    remote:[session-614483a1]Accessdeniedfatal:unabletoaccess'https://gitee.com/**/':TherequestedURLreturnederror:403  解决办法: gitconfiguser.name"newname"gitconfigcredential.username"newname"或者删除本地钥匙串......
  • git 自动提交
    gitadd.gitcommit-m"合入新的PUCCH和小区功率代码"gitpushoriginmaster *****sh/usr/share/nginx/g4.sh  ----------------g4#!/bin/bashPROJECT_PATH=/usr/share/nginx/htmlecho"进入目录:SPROJECT_PATH" cd$PROJECT_PATHgitpull ......
  • Java的类加载顺序
    1.类加载器Java虚拟机的类加载过程是由类加载器(ClassLoader)来实现的。类加载器负责将类装载到内存中,并为其创建一个Class对象。Java虚拟机定义了三种类加载器,分别为BootstrapClassLoader、ExtensionClassLoader、SystemClassLoader,它们按照层次关系进行组织,而且每个类加载器......
  • Git/TortoiseGit冲突:commit your changes or stash them before you can merge[解决之
    最近在pull代码时,遇到了‘commityourchangesorstashthembeforeyoucanmerge’的提示,针对此问题,我查阅了大量的资料,得到了解决办法,给大家分享下问题:在你mergeorchangemaster前,提交你的改变,或者存储改变。问题原因:上次commit后,代码发生了新的变化,如果merge或者change......
  • 手把手教你实现跳表!
    发布于我的博客,也许同步更新于博客园引入跳表(跳跃表)能够维护一个数的集合(作用类似普通平衡树),查找时间复杂度为\(\logn\),与平衡树一样基于链表结构。由于不需要平衡树那么多旋转什么的,所以效率比较高,一般认为性能能打红黑树。除此以外,链表的特性使它能够以线性时间遍历某个子段......
  • ERROR: cannot verify github.com's certificate
    wget获取https资源-simplelovecs-博客园(cnblogs.com)加参数>wget--no-check-certificateyour-download-url......
  • Webpack报错Error: error:0308010C:digital envelope routines::unsupported处理
    在学习组件库流程打包的时候报错找不到module,后来改了版本又报错Error:error:0308010C:digitalenveloperoutines::unsupported报错原因:node17+版本对发布的OpenSSL3.0,而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响.解决方案:在网上搜索......
  • GITHUB无法访问
    如题国内gitee,但有时候想访问下github,例如:https://www.eclipse.org/swt/snippets/里面的例子,想看源码就需要到github土建工具FastGithub......