添加 pre-commit 规范团队提交规范

  • 增加 eslint + pre-commit
  • 以前团队的 commit 都比较随意,没有对照和规范性。

安装

npm install --save-dev pre-commit
复制代码

具体的详情可以看 github

  • github.com/observing/p…

优点

  • 可读性好,清晰,不必深入看代码即可了解当前 commit 的具体功能
  • 为以后跟踪和查看 log 历史做准备
  • code review 更加方便
  • git blame(查看每个部分是谁修改的) 更加便捷

commit message格式

  • 每次提交的时候都包括三个部分: header,body,footer
  • header 是必填,body 和 footer 都是可省略的。

1、header

  • header 分三个部分 type必填,scope选填,subject,选填

1.1、type

  • build: 项目构建打包

  • ci: 项目构建配置的变动

  • docs: 仅仅修改了文档等(不是指文案类的改动,而是指项目文档、代码注释等)

  • fix: 修复bug

  • feat: 增加新功能

  • perf: 优化

  • refactor: 重构(非fix、非feature、非style风格格式化)

  • revert: 代码回滚

  • style: 代码风格变动,例如空格、缩进等(不是指css文件变动)

  • test: 测试用例代码

  • chore: 其他类型的更改(非即以上类型的改动)

上诉是一些基础类型

1.2、scope

  • scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。

  • 例如在Angular,可以是browser, rootScope, ngHref, ngClick, ngView等。

  • 如果你的修改影响了不止一个scope,你可以使用*代替。

1.3、subject

  • 对 commit 的简单描述

2、body

  • Body 部分是对本次 commit 的详细描述,可以分成多行。下面是一个范例。
More detailed explanatory text, if necessary.  Wrap it to
about 72 characters or so. Further paragraphs come after blank lines.- Bullet points are okay, too
- Use a hanging indent
复制代码

有两个注意点:

  • 使用第一人称现在时,比如使用change而不是changed或changes。

  • 永远别忘了第2行是空行

  • 应该说明代码变动的动机,以及与以前行为的对比。

3、footer

  • 如果当前代码与上一个版本不兼容,则 Footer 部分以BREAKING CHANGE开头,后面是对变动的描述、以及变动理由和迁移方法。
  • 关闭 Issue

demo

  • 比如现在我们增加了一个项目(projectTest)的其中一个 button 组件
  • 我们像这样来写 commit
git add .
git commit -m"feat: projectTest: add new component(button)"
复制代码
  • 上面只是一个在自己项目中的 commit ,根据不同的情况,pre-commit 根据自己的项目去配置一些规范 。

参考

  • www.ruanyifeng.com/blog/2016/0…
  • github.com/observing/p…

commit 规范性提交相关推荐

  1. git commit -m 提交时报错husky pre-commit (node v12.18.2)

    git commit -m ""提交时报错husky > pre-commit (node v12.18.2) husky > pre-commit (node v12 ...

  2. git commit -m ‘提交信息‘ --no-verify 的妙用

    问题: 解决:git commit -m '提交信息' --no-verify

  3. git cherry-pick 把提交到A分支的部分commit 再提交到B分支上

    应用环境: 有一个主分支 master (这个分支只是用来合并其他通过测试的分支,及上线打版本) 另一个分支 dev (开发提交的分支) 当你通过一番挣扎终于搞定一个bug,顺手提交到 git 服务器 ...

  4. Mybatis openSession.commit()手动提交数据和openSession.commit(true)自动动提交数据

    openSession.commit(true)自动提交数据

  5. git-cz git commit 定制提交规范

    git commit规范定制 步骤1: 安装 commitizen cz-emoji(表情符) npm i commitizen cz-emoji --save 步骤2:打开package.json ...

  6. git commit -m 提交忽略代码校验

    git commit -m 忽略代码校验 git 提交代码时候报eslint --fix found some errors. Please fix them and try committing a ...

  7. git commit 代码提交规范

    1. 前言 每个人 git 的提交记录都有自己的风格和习惯,特别是多人协作开发的项目,如果没有一套完整的规范,则每个人的代码提交描述内容会很随意,质量参差不齐,会降低 log 的可读性和维护性.所以, ...

  8. git合并多个远程commit并提交

    查了很多博客,最后看了 https://segmentfault.com/a/1190000007748862 成功地把本地的提交合并了.不过因为我这些commit已经push到远程上了,所以和文章里 ...

  9. 修改git已提交的commit中提交者的用户名和邮箱

    如下图中,将已经提交的commit中,用户名jincheng-demo,jincheng-demo01,以及邮箱jincheng@test.com, 修改为正确的用户名:jincheng,正确的邮箱: ...

最新文章

  1. memcached 常见问题 翻译
  2. android的消息处理机制(图文+源码分析)—Looper/Handler/Message[转]
  3. 空间三维坐标的旋转 理解与记忆
  4. qt中new与delete使用示例
  5. P1306-斐波那契公约数【矩阵乘法,数论】
  6. leetcode1219. 黄金矿工(回溯)
  7. 常用技巧 —— 位运算 —— 位运算基础
  8. GRE 隧道配置案例(静态、动态路由)
  9. c语言高级程序设计第五版PDF,C语言高级编程.pdf
  10. 上岸后如何选择一个好的导师
  11. IT忍者神龟之Java动态代理与CGLib代理
  12. 利用navicat 进行 mysql建表语句转oracle建表语句
  13. 实用供热空调设计手册_暖通空调设计与施工数据图表手册
  14. Excel如何取消合并单元格并填充空单元格
  15. 2020年4月github上最热门项目-python
  16. Android蓝牙通讯(服务端、客户端)
  17. 存储简单数据——Preferences
  18. ArcEngine中的ICommand和ITool
  19. leetcode507. 完美数
  20. SpringCloud Alibaba 实战之《服务门户:Spring Cloud Gateway 如何把好微服务的大门》

热门文章

  1. tab控件的使用心得
  2. 远程访问dmz和虚拟服务器的设置
  3. [原]无法删除openstack nova的image instance
  4. Word 2007批注及批注者姓名修改技巧
  5. 升级到NVelocity1.1版本
  6. CCNA红头发视频教程全集---91lab
  7. 室内布线电缆未来的发展趋势
  8. Python 紧急修复远程代码执行漏洞
  9. FinSpy 发布 Mac 和 Linux OS 版本攻击埃及组织机构
  10. 知物由学 |“网状世界”下,无处可逃的信息安全