⽼鸟都应该注意的git提交规范
不知道⼤家有没有看过⾃⼰项⽬的git 提交信息-----我看过好多次,不忍直视然后提醒⼀起的⼩伙伴:⼤家规范点信息要详细,
过段时间再看下 ,还是⼀样。
相信很多猿都有这样的感受,对于垃圾的提交信息深恶痛绝,特别是那些提交信息为 "fix bug"的commit,SO, 如果提交的时候能有
些填写规范的提⽰或者⾼级点有交互式的约束就好了。
这⾥给出两种⽅案,也是业界⽐较通⽤的
1. 交互式约束命令提交
2.配置git commit 模板
先来介绍第⼀种:(基于MAC OS 安装)
知名前端web项⽬AngularJS的提交记录在业内被许多⼈称赞,其规范同时也逐渐被⼤家引⽤,为了把这
些规范实际应⽤到项⽬中,我们就需要这个⼩⼯具,该⼯具是基于Node的,因此我们⾸先必须先安装node环境 ,node环境好了后便可以开始安装我们的
利器了,步骤很简单:
a. npm 全局安装利器 commitizen
npm install -g commitizen
b.安转规范模板⽂件
这⾥有个要注意的地⽅规范模板⽂件分全局(也就是说这个规范适⽤于你电脑上所有的git 项⽬)的和单个仓库(只针对⼀个git⼯程)的 全局安装 :
先全局下载规范模板⽂件
1. npm install -g cz-conventional-changelog 其中 cz-conventional-changelog 这个东西就是AngularJS的规范
2. echo '{ "path": "cz-conventional-changelog" }' > ~/.czrc ,此时你当前⽤户的根⽬录下应该可以看到⼀个 .czrc的⽂件了
然后你切换到你的git ⼯程下 ,在当你需要使⽤ git commit 的地⽅更换成 git cz就能显⽰出 commit 的交互界⾯局部安装:
1.直接 cd到你的git⼯程下
2mitizen init cz-conventional-changelog --save --save-exact 安装规范⽂件,如果你的项⽬本⾝就是 node系列的如 web
前端项⽬,你的项⽬下应该是有个 package.json⽂件的,此时你运⾏上⾯的命令不会报错直接成功,但如果你的项⽬是 ios 、Android
⼯程根⽬录下没有 package.json的话你就需要 npm init ⼀下,然后会看到⼀个package.json的⽬录
3mitizen init cz-conventional-changelog --save --save-exact 此时你会发现⼜多了个nodes_modules⽂件夹没办法 ,你两个
⽂件你应该不会导⼊到⼯程中吧,直接加⼊到 gitignore⽂件中去好了
所以推荐全局安装 ,好的规范应该⽤在所有的⼯程上.
你是否注意到,当你执⾏ git cz后的那些提⽰信息,按照⼀步⼀步填写,最终会⽣成如下格式的提⽰信息
<type>(<scope>) : <subject>
<;空⾏>
<body>
<;空⾏>
<footer>
其中 type 的值可以有很多,下⾯有⼏个我们常⽤到的
. feat :新功能
. fix :修复bug
. doc : ⽂档改变
. style : 代码格式改变
. refactor :某个已有功能重构
.perf :性能优化
.test :增加测试
. build :改变了build⼯具如 grunt换成了 npm
.revert: 撤销上⼀次的 commit
scope :⽤来说明此次修改的影响范围可以随便填写任何东西,commitizen也给出了⼏个如:location 、browser、compile,不过我推荐使⽤
all :表⽰影响⾯⼤,如修改了⽹络框架会对真个程序产⽣影响
loation:表⽰影响⼩,某个⼩⼩的功能
module:表⽰会影响某个模块如登录模块、⾸页模块、⽤户管理模块等等
subject: ⽤来简要描述本次改动,概述就好了
body:具体的修改信息应该尽量详细
footer:放置写备注啥的,如果是 bug ,可以把bug id放⼊
angular和angularjs最后⽣成的 commit 信息⼤概是这样的简洁⼜明了
那现在来讲讲第⼆种:git 设置模板
步骤如下:
1.⾸先建⽴⼀个模板⽂件最好直接在⽤户根⽬录下建(为啥?稍后解释)
如:建⽴ vim .template_git
如果按 i 编辑,输⼊⾃⼰想要的规范,刚上⾯说了AngularJS的 commit规范很好,那我们应该模拟它的
然后保存推出
2.git config --plte 模板⽂件名, 我的模板⽂件是 .template_git 所有我直接
git config --plate /Users/tao/.template_git (PS:⼀定要是绝对路径,因为commit 的时候git会去到根据具体的路径名去加载模板)
其中 --global 参数是为了指明是全局配置git,就是影响你电脑上的所有git⼯程,当然你也可以直接去对应的⼯程根⽬录下
执⾏不带 --global参数的命令则只会影响当前⼯程(还是推荐全局,好东西要⼀起⽤)
配置完成后你直接在需要commit的时候输⼊ git commit
然后会出来⼀些⽂本提⽰只要⼤家都按照上⾯的格式填写我们就也能有和AngularJS⼀样美观的提交信息了,
可以直接下载下来配置
PS:对于上⾯两种⽅式个⼈觉得 commitizen ⽆疑是利器了,能⽤尽量⽤,但有些开发⼩伙伴可能对纯命令的形式不太喜欢,或者就是不会git 命令
也有些正在使⽤如sourceTree⼀样有着界⾯的git⼯具,这个时候就可以采⽤ git 配置模板的⽅式了, 由于sourceTree默认也会去加载git 全局配置的
commit模板(全局配置的重要性),⽽且这个配置⽂件还只能在当前⽤户根⽬录的下,这也是为什么上⾯说要在⽤户根⽬录下建配置⽂件的原因
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论