目前很多项目都是通过 Git 进行管理的,Git 每次提交代码的过程中 提交说明 commit message 是必须的。但仅仅必须是不够的,好的提交说明可以帮助我们提高项目的整体质量。

作用与优点

提交说明最首要的目的是帮助 提交者 说明本次提交的目的,而规范的说明信息有几个好处。

  1. 提供完整的信息,帮忙快速定位问题
  2. 过滤某些 commit ,快速查找有用信息
  3. 直接从 commit 信息生成 Change log
  4. 加快 Code Review 的过程

基本要求

  • 第一行应该少于 50 个字。随后是一个空行
  • 永远不在 git commit 上增加 -m <msg> 或者 --message=<msg> 参数,而需要单独写提交信息

好的提交说明要包含下面的内容:

  1. 为什么要提交这次修改?
  2. 怎么解决的问题?
  3. 可能影响哪些内容?

Angular 规范 CommitMsg 格式

Angular 主要有三个格式,其中 Head 是必须的,bodyfooter 是可选的。

# head: <type>(<scope>): <subject>
# - type: feat, fix, docs, style, refactor, test, chore
# - scope: can be empty (eg. if the change is a global or difficult to assign to a single component)
# - subject: start with verb (such as 'change'), 50-character line
#
# body: 72-character wrapped. This should answer:
# * Why was this change necessary?
# * How does it address the problem?
# * Are there any side effects?
#
# footer:
# - Include a link to the ticket, if any.
# - BREAKING CHANGE
#

Header

其中 type 用来说明 commit 的类别,只允许使用下面的 7 个标识。

  • feat 新功能
  • fix 修补 bug
  • docs 文档
  • style 格式
  • refactor 重构
  • test 增加测试
  • chore 构建过程、辅助工具
  • perf 提高性能

如果 typefeatfix ,则该 commit 信息将肯定出现在 change log 之中。

scope 用于说明 commit 影响的范围,比如影响哪一层、哪个包中的内容或者使用哪些方案的实例。

subject 是关于 commit 信息的简短描述,不超过 50 个字。

Body

Body 部分是针对本次 commit 的详细描述,可以多行,要表达清楚变动的动机、与之前行为的对比。

Footer

用于不兼容变动和关闭 Issue 。

使用 gitemoji 进行美化

虽然纯文字的提交说明已经非常明确了,但是却比较单调,而且在一些内容上感觉少了一些步骤,于是在现有的内容上进行少量的修改以更美观的清晰。

type 主要将原来的 chore 进行了拆分,增加了 cireview 两个内容,用来补充项目开发过程中的流程。其它的还有一些内容,可以参照 gitemoji

  • feat 新功能 :sparkles:
  • fix 修补 bug :bug:

    优化 Git Commit Message的更多相关文章

    1. 如何写好git commit message

      1.触发事件 我有这样一个版本库,里面包含两个学习用的练习项目:BookStore(以下简称BS)和PictureFriend(以下简称PF) 我在更改PF以后,未进行提交,同时又到BS中优化了一下文 ...

    2. git第四节----git commit message

      @git  commit message 什么是git commit message :git commit -m '每次提交时编辑的内容' git commit message的好处:      1 ...

    3. Git Commit Message 规范

      今天来说说团队开发中,对于 Git commit message 规范问题. 社区上有各种 Commit message 的规范,本文介绍 Angular 规范,目前使用较广,比较合理和系统化,并且有 ...

    4. 我是怎么写 Git Commit message 的?

      目录 作用 用的什么规范? type scope subject body footer 参考文章 用的什么辅助工具? 作用 编写格式化的 commit message 能够大大提高代码的维护效率. ...

    5. [软软软]技术博客-Commitizen优化git commit

      工具介绍 commitizen/cz-cli是一个规范git commit的工具,使用它代替git commit能够方便有效地写好提交的log,使得团队项目的版本信息更清晰. 安装 (全局安装) np ...

    6. Git commit message和工作流规范

      目的 统一团队Git commit日志标准,便于后续代码review,版本发布以及日志自动化生成等等. 统一团队的Git工作流,包括分支使用.tag规范.issue等 Git commit日志参考案例 ...

    7. [译]How to Write a Git Commit Message

      原文: http://chris.beams.io/posts/git-commit/ 介绍:为什么好的commit message很重要 你浏览项目commit message的时候或多或少会有些困 ...

    8. git使用总结(包含git commit message 和 changelog 工具的介绍)

      [git的配置] 1.配置用户名和邮箱: 分为全局配置和局部配置 --system 系统配置  --global 全局配置    --local 局部配置 Git读取时:优先从local>glo ...

    9. commitizen和cz-customizable配置git commit message

      起因 团队对提交的commit message格式有约定俗称的要求,但是没有一个统一的规范,导致大家提交的commit message或多或少不太一样.因此,需要一个工具来帮助大家统一commit m ...

    随机推荐

    1. windows下python和pycharm安装及其使用

      1.python安装及环境变量配置 1.1 python安装 1.1.1 python下载 官网下载:https://www.python.org/ Downloads-Windows(Mac os ...

    2. [转] Julia 高性能动态编程语言入门

      本文共 851字,阅读大约需要 3分钟 ! 概 述 Julia 是一个 "全新"的高性能动态编程语言,前两天迎来了其 1.0 正式版的重大更新.Julia集 Python.C.R. ...

    3. 02-20 kd树(鸢尾花分类)

      [TOC] 更新.更全的<机器学习>的更新网站,更有python.go.数据结构与算法.爬虫.人工智能教学等着你:https://www.cnblogs.com/nickchen121/ ...

    4. 用 Python 爬取网易严选妹子内衣信息,探究妹纸们的偏好

      网易商品评论爬取 分析网页 评论分析 进入到网易精选官网,搜索“文胸”后,先随便点进一个商品. 在商品页面,打开 Chrome 的控制台,切换至 Network 页,再把商品页Python入门到精通学 ...

    5. Java中ArrayList和LinkedList的性能分析

      ArrayList和LinkedList是Java集合框架中经常使用的类.如果你只知道从基本性能比较ArrayList和LinkedList,那么请仔细阅读这篇文章. ArrayList应该在需要更多 ...

    6. cocos2d-x 3.2锚点,Point,addchild,getcontensize

      一,锚点 打个比方.在墙挂一幅画时,要钉一个钉子,那个钉子就是锚点. 然后挂图时,钉子(锚点)放在要订的位置(position),订下去.完成(贴图结束). 贴图的基本点,锚点默认为(0.5,0.5) ...

    7. 渗透-简单制作过waf的中国菜刀

      0x01 简单分析 web渗透中很常见的情况,用菜刀连接免杀的一句话木马连不上,有waf 除了变形一句话木马为免杀一句话,我们还需要来制作过waf的菜刀进行连接. 这里用的一句话为 来看看菜刀连接一句 ...

    8. SQLMAP SSI注入错误解决

      记一次SQL注入 目标地址:https://www.xxxx.com/ 之前补天提交过这个注入  后来貌似”修复了”(实际就是装了安全狗和过滤了一些关键字) 不过今天试了下 还是可以注入 可以看到已经 ...

    9. 8种常见的SQL错误用法

      常见SQL错误用法 1. LIMIT 语句 分页查询是最常用的场景之一,但也通常也是最容易出问题的地方.比如对于下面简单的语句,一般DBA想到的办法是在type, name, create_time字 ...

    10. 【Java基础】谈谈集合.CopyOnWriteArrayList

      目录 实现原理 遍历时不用加锁的原因 CopyOnWriteArrayLis的缺点 使用场景 总结 参考 本篇博客介绍CopyOnWriteArrayList类,读完本博客你将会了解: 什么是COW机 ...