优化 Git Commit Message
目前很多项目都是通过 Git 进行管理的,Git 每次提交代码的过程中 提交说明 commit message 是必须的。但仅仅必须是不够的,好的提交说明可以帮助我们提高项目的整体质量。
作用与优点
提交说明最首要的目的是帮助 提交者 说明本次提交的目的,而规范的说明信息有几个好处。
- 提供完整的信息,帮忙快速定位问题
- 过滤某些 commit ,快速查找有用信息
- 直接从 commit 信息生成 Change log
- 加快 Code Review 的过程
基本要求
- 第一行应该少于 50 个字。随后是一个空行
- 永远不在
git commit
上增加-m <msg>
或者--message=<msg>
参数,而需要单独写提交信息
好的提交说明要包含下面的内容:
- 为什么要提交这次修改?
- 怎么解决的问题?
- 可能影响哪些内容?
Angular 规范 CommitMsg 格式
Angular 主要有三个格式,其中 Head 是必须的,body 和 footer 是可选的。
# 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 提高性能
如果 type 为 feat 和 fix ,则该 commit 信息将肯定出现在 change log 之中。
scope 用于说明 commit 影响的范围,比如影响哪一层、哪个包中的内容或者使用哪些方案的实例。
subject 是关于 commit 信息的简短描述,不超过 50 个字。
Body
Body 部分是针对本次 commit 的详细描述,可以多行,要表达清楚变动的动机、与之前行为的对比。
Footer
用于不兼容变动和关闭 Issue 。
使用 gitemoji 进行美化
虽然纯文字的提交说明已经非常明确了,但是却比较单调,而且在一些内容上感觉少了一些步骤,于是在现有的内容上进行少量的修改以更美观的清晰。
type 主要将原来的 chore 进行了拆分,增加了 ci 和 review 两个内容,用来补充项目开发过程中的流程。其它的还有一些内容,可以参照 gitemoji 。
- feat 新功能
:sparkles:
✨ - fix 修补 bug
:bug:
优化 Git Commit Message的更多相关文章
- 如何写好git commit message
1.触发事件 我有这样一个版本库,里面包含两个学习用的练习项目:BookStore(以下简称BS)和PictureFriend(以下简称PF) 我在更改PF以后,未进行提交,同时又到BS中优化了一下文 ...
- git第四节----git commit message
@git commit message 什么是git commit message :git commit -m '每次提交时编辑的内容' git commit message的好处: 1 ...
- Git Commit Message 规范
今天来说说团队开发中,对于 Git commit message 规范问题. 社区上有各种 Commit message 的规范,本文介绍 Angular 规范,目前使用较广,比较合理和系统化,并且有 ...
- 我是怎么写 Git Commit message 的?
目录 作用 用的什么规范? type scope subject body footer 参考文章 用的什么辅助工具? 作用 编写格式化的 commit message 能够大大提高代码的维护效率. ...
- [软软软]技术博客-Commitizen优化git commit
工具介绍 commitizen/cz-cli是一个规范git commit的工具,使用它代替git commit能够方便有效地写好提交的log,使得团队项目的版本信息更清晰. 安装 (全局安装) np ...
- Git commit message和工作流规范
目的 统一团队Git commit日志标准,便于后续代码review,版本发布以及日志自动化生成等等. 统一团队的Git工作流,包括分支使用.tag规范.issue等 Git commit日志参考案例 ...
- [译]How to Write a Git Commit Message
原文: http://chris.beams.io/posts/git-commit/ 介绍:为什么好的commit message很重要 你浏览项目commit message的时候或多或少会有些困 ...
- git使用总结(包含git commit message 和 changelog 工具的介绍)
[git的配置] 1.配置用户名和邮箱: 分为全局配置和局部配置 --system 系统配置 --global 全局配置 --local 局部配置 Git读取时:优先从local>glo ...
- commitizen和cz-customizable配置git commit message
起因 团队对提交的commit message格式有约定俗称的要求,但是没有一个统一的规范,导致大家提交的commit message或多或少不太一样.因此,需要一个工具来帮助大家统一commit m ...
随机推荐
- 无广告版本Flash player 一枚,需要的拿走~
无广告版本flashplayer,国内flashplayer已经被植入了广告,安装后不断的弹出广告使用体验很差,最开始还以为是电脑被恶意植入捆绑插件, 检查半天发现竟然是浏览器的flash playe ...
- 怎样实现给DEDE5.7的栏目增加栏目图片
前两天用DEDE做二次开发的时候,遇到一个问题,领导让给每个栏目增加一个栏目图片的功能,网上找了些东西,结合自己实际做的时候的方法,下面详细描述下具体的实现方式(只测试了V5.7版本,对低版本是否适用 ...
- 浅谈个人对客户端JavaScript同步、异步、执行顺序等概念的理解
一.同步和异步的概念. 同步:即按代码的顺序执行任务. 在下列代码中,按照同步概念,则是先打印1后打印2. console.log(1); console.log(2); 异步:即执行一个任务的同时执 ...
- mac 安装redis及phpredis扩展
下载phpredis扩展安装包.git clone https://github.com/nicolasff/phpredis.git: 解压后,进入该目录: 依次执行以下操作完成安装: /Appli ...
- java第1天:简介,入门程序,变量,常量
1 java语言简介 美国的SUN公司开发的静态面向对象的编程语言,后来被甲骨文公司收购,现在也是全球范围内最受欢迎的编程语言. *** 2 计算机进制的相互转换 进制 英文代号 2进制 bin 8进 ...
- C# WinForm 跨线程访问控件(实用简洁写法)
C# WinForm 跨线程访问控件(实用简洁写法) 1.<C# WinForm 跨线程访问控件(实用简洁写法)> 2.<基于.NET环境,C#语言 实现 TCP NAT ...
- 版本控制之Git小结
一.版本控制 1.1 什么是版本控制 版本控制是一种记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况的系统.可以对任何类型的文件进行版本控制. 1.2 为什么需要版本控制 有了版本控制就可以 ...
- Linux入门(磁盘与挂载)
Linux入门之 磁盘管理与挂载 在我们使用计算机或者是服务器时,总会需要接入外部存储的时候,正如我们使用的移动硬盘.U盘.接入手机等,就是一个接入外部存储的过程.上述这些在接入Windows时我 ...
- java之ReentrantLock详解
前言 如果一个代码块被synchronized修饰了,当一个线程获取了相应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的释放,现在有这么一种情况,这个获取锁的线程由于要等待IO或者其他原 ...
- 基于vue组件,发布npm包
亲测好用,如出错,请留言 1.项目初始化 使用vue脚手架创建,但vuecli太重,我们使用简单的工程脚手架进行处理,输入命令 vue init webpack-simple my-project n ...
- 如何写好git commit message