设为首页 收藏本站
查看: 1171|回复: 0

[经验分享] 老鸟都应该注意的git 提交规范

[复制链接]
累计签到:29 天
连续签到:1 天
发表于 2018-1-15 08:15:26 | 显示全部楼层 |阅读模式
  不知道大家有没有看过自己项目的git 提交信息-----我看过好多次 ,不忍直视  然后提醒一起的小伙伴 :大家规范点 信息要详细,
  过段时间再看下 ,还是一样。
  相信很多猿都有这样的感受,对于垃圾的提交信息深恶痛绝,特别是那些提交信息为 "fix bug"的commit,SO, 如果提交的时候能有
  些填写规范的提示  或者高级点有交互式的约束就好了。
  这里给出两种方案,也是业界比较通用的
  1. commitizen 交互式约束命令 提交
  2.配置git commit 模板
  先来介绍第一种:(基于MAC OS 安装)
  知名前端web项目AngularJS的提交记录在业内被许多人称赞,其规范同时也逐渐被大家引用,为了把这些规范实际应用到项目中,我
  们就需要 commitizen 这个小工具,该工具是基于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工程下
  2.commitizen init cz-conventional-changelog  --save --save-exact  安装规范文件,如果你的项目本身就是 node系列的 如 web
  前端项目 ,你的项目下应该是有个 package.json文件的,此时你运行 上面的命令不会报错 直接成功,但如果你的项目是 ios 、Android
  工程根目录下没有 package.json的话你就需要 npm init 一下,然后会看到一个package.json的目录
  3.commitizen 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>  最后生成的 commit 信息大概是这样的  简洁又明了

  那现在来讲讲第二种 :git 设置模板
  步骤如下:
  1.首先建立一个模板文件 最好直接在用户根目录下建(为啥?  稍后解释)
  如:建立  vim  .template_git
  如果 按 i 编辑  ,输入自己想要的规范 ,刚上面说了AngularJS的 commit规范很好,那我们应该模拟它的
  然后保存 推出
  2.git config --global commit.templte  模板文件名,  我的模板文件是 .template_git  所有我直接
  git config --global commit.template  /Users/tao/.template_git   (PS:一定要是绝对路径,因为commit 的时候git会去到根据具体的路径名去加载模板)
  其中 --global 参数是为了指明是全局配置git,就是影响你电脑上的所有git工程,当然你也可以直接去对应的工程根目录下
  执行不带 --global参数的命令  则只会影响当前工程  (还是推荐全局 ,好东西要一起用)
  配置完成后 你直接在需要commit的时候输入 git commit
  然后会出来一些文本提示 只要大家都按照上面的格式填写我们就也能有和AngularJS一样美观的提交信息了 ,这里有个按照AngularJS规范编写的模板文件
  可以直接下载下来配置
  PS:对于上面两种方式 个人觉得 commitizen 无疑是利器了,能用尽量用,但有些开发小伙伴可能对纯命令的形式不太喜欢,或者就是不会git 命令
  也有些正在使用 如sourceTree一样有着界面的git工具,这个时候就可以采用 git 配置模板的方式了, 由于sourceTree默认也会去加载git全局配置的
  commit模板(全局配置的重要性),而且这个配置文件还只能在当前用户根目录的下,这也是为什么上面说要在用户根目录下建配置文件的原因

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-435224-1-1.html 上篇帖子: sublime 集成git插件,及git常用命令 下篇帖子: web开发者记录和总结web开发技术的点点滴滴...
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表