这篇不讲代码的规范,而是 Commit 的规范。什么?还有 Commit 的规范?
痛点
不知道大家有没有写过这样的提交? 这个提交的问题显而易见,不知道修复了什么问题,这个bug是否有对应的 Bug Id?也不知道这个 Bug 的修复,是否会造成重大的影响?
又比如下面另一个情形,比如同一个版本上面,进行了重构。但每个人在提交 Commit 的时候,规范不一样。有人分别叫 Refactor
, 重构
, Change
。这种情况下,就不太方便统计这个版本进行了重构。
规范
前面的痛点,关键问题在于没有规范。没有规矩,不成方圆。其实 Git Commit 是可以有固定规范的,通过这些有固定规范的 commit,解析这些固定格式,就能知晓这些提交做了什么事情,甚至可以分类查看。
现在沿用得较多的是 Angular.js 项目所使用的规范。
<type>(<scope>): <subject> // 空一行 <body> // 空一行 <footer>
Type
是表明 commit 的作用,主要用于分类。
Scope
用于说明 commit 影响的范围,比如 Performance
, View
等等。
AngularJs 使用的一些 Scope 如下, **bazel**
, **compiler**
, **core**
。 Scope 的定义结合具体的业务来执行就好。
Subject
是用于显示的简要说明。例如bug的描述、性能的优化等等。
Body
对上面subject里内容的展开,在此做更加详尽的描述,内容里应该包含修改动机和修改前后的对比。
Footer
脚手架
我相信这么普遍的问题,一定有很多脚手架出现。果不其然,我找到了不少脚手架,大家可以根据自己的需要来选择。
Git Commit Template
Idea 有口福了,啊,呸!是福气哈。直接有这个插件,提交的时候使用这个插件即可。
Commitizen
Commitizen 是一个命令行用于生成标准的 commit 命令行工具。
GitHub - commitizen/cz-cli: The commitizen command line utility.Standard-Version
基于规范化的提交过后,还能做不少其他事情。
- Bump: 升机版本号。
- Changelog:生成 change log。
- Commit:提交代码入库。
- Tag:打上相应标签。
Standard-Version 一键帮我们完成这些任务,这个 工具 目前我在使用中,感觉还可以。贴出 AngularJs 的 ChangeLog,让我们瞻仰下。
为了防止世界被破坏!为了守护世界的和平!贯彻爱与真实的邪恶!冲鸭!
文档信息
- 版权声明:自由转载-非商用-非衍生-保持署名( 创意共享3.0许可证 )
- 发表日期:2018年5月20日
- 社交媒体:weibo.com/woaitqs
- Feed订阅: www.woaitqs.cc/feed.xml
Last updated:
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Effective Java 中文版
(美)Joshua Bloch / 潘爱民 / 机械工业出版社 / 2003-1 / 39.00元
本书介绍了在Java编程中57条极具实用价值的经验规则,这些经验规则涵盖了大多数开发人员每天所面临的问题的解决方案。通过对Java平台设计专家所使用的技术的全面描述,揭示了应该做什么,不应该做什么才能产生清晰、健壮的高效的代码。 本书中的每条规则都以简短、独立的小文章形式出现,这些小文章包含了详细而精确的建议,以及对语言中许多细微之处的深入分析,并通过例子代码加以进一步说明。贯穿全书的是通用......一起来看看 《Effective Java 中文版》 这本书的介绍吧!