代码提交规范

12/10/2021 OTHER

# 安装 husky(npm 或者 yarn)

yarn add husky -D

npm install -D husky

# 初始化 husky

yarn husky install

npx husky install

# 新增 commit msg 钩子

yarn husky add .husky/commit-msg "node scripts/verifyCommit.js"

npx husky add .husky/commit-msg "node scripts/verifyCommit.js"

# commit-msg 配置文件

const msg = require('fs')
  .readFileSync('.git/COMMIT_EDITMSG', 'utf-8')
  .trim()
const commitRE = /^(revert: )?(feat|fix|docs|dx|style|refactor|perf|test|workflow|build|ci|chore|types|wip|release)(\(.+\))?: .{1,50}/
const mergeRe = /^(Merge pull request|Merge branch)/
if (!commitRE.test(msg)) {
  if (!mergeRe.test(msg)) {
    console.log('git commit信息校验不通过')
    console.error(`git commit的信息格式不对, 需要使用 title(scope): desc的格式
      比如 fix: xxbug
      feat(test): add new 
      具体校验逻辑看 scripts/verifyCommit.js
    `)
    process.exit(1)
  }
} else {
  console.log('git commit信息校验通过')
}

*确保每次上传代码提交日志都符合 type(scope): message 的格式

# Git 提交代码时添加 emoji 图标

使用 git 的开发者都知道提交代码的最简单命令: git commit -m '此次提交的内容说明'

这是在 commit 时,添加了 emoji 表情说明,我们来看看其命令语法:

# 在 commit 时添加一个 emoji 表情图标

git commit -m ':emoji: 此次提交的内容说明'

# 添加多个 emoji 表情图标

git commit -m ':emoji1: :emoji2: :emoji3: 此次提交的内容说明'

在提交内容的前面增加了 emoji 标签: :emoji:,其中 emoji 是表情图标的标签,列表见下面的附录表格。

emoji emoji 代码 commit 说明
🎨 (调色板) :art: 改进代码结构/代码格式
⚡️ (闪电)🐎 (赛马) :zap:“:racehorse: 提升性能
🔥 (火焰) :fire: 移除代码或文件
🐛 (bug) :bug: 修复 bug
🚑 (急救车) :ambulance: 重要补丁
✨ (火花) :sparkles: 引入新功能
📝 (备忘录) :memo: 撰写文档
🚀 (火箭) :rocket: 部署功能
💄 (口红) :lipstick: 更新 UI 和样式文件
🎉 (庆祝) :tada: 初次提交
✅ (白色复选框) :white_check_mark: 增加测试
🔒 (锁) :lock: 修复安全问题
🍎 (苹果) :apple: 修复 macOS 下的问题
🐧 (企鹅) :penguin: 修复 Linux 下的问题
🏁 (旗帜) :checked_flag: 修复 Windows 下的问题
🔖 (书签) :bookmark: 发行/版本标签
🚨 (警车灯) :rotating_light: 移除 linter 警告
🚧 (施工) :construction: 工作进行中
💚 (绿心) :green_heart: 修复 CI 构建问题
⬇️ (下降箭头) :arrow_down: 降级依赖
⬆️ (上升箭头) :arrow_up: 升级依赖
👷 (工人) :construction_worker: 添加 CI 构建系统
📈 (上升趋势图) :chart_with_upwards_trend: 添加分析或跟踪代码
🔨 (锤子) :hammer: 重大重构
➖ (减号) :heavy_minus_sign: 减少一个依赖
🐳 (鲸鱼) :whale: Docker 相关工作
➕ (加号) :heavy_plug_sign: 增加一个依赖
🔧 (扳手) :wrench: 修改配置文件
🌐 (地球) :globe_with_meridians: 国际化与本地化
✏️ (铅笔) :pencil2: 修复 typo

参考资料 :

  • https://gitmoji.carloscuesta.me/
    希望像星光一样闪烁
    文雀