zoukankan      html  css  js  c++  java
  • 开发人员如何规范你的Git commit?

    导读:commit message应该如何写才更清晰明了?团队开发中有没有遇到过让人头疼的git commit?本文分享在git commit规范建设上的实践,规定了commit message的格式,并通过webhook在提交时进行监控,避免不规范的代码提交。 

    背景

    Git每次提交代码都需要写commit message,否则就不允许提交。一般来说,commit message应该清晰明了,说明本次提交的目的,具体做了什么操作……但是在日常开发中,大家的commit message千奇百怪,中英文混合使用、fix bug等各种笼统的message司空见怪,这就导致后续代码维护成本特别大,有时自己都不知道自己的fix bug修改的是什么问题。基于以上这些问题,我们希望通过某种方式来监控用户的git commit message,让规范更好的服务于质量,提高大家的研发效率。

    规范介绍

    首先我们可以看下AngularJS 的规范,它是由 Google 推出的一套提交消息规范标准,也是目前使用范围最广的规范。有一套合理的手册也较为系统化;并且还有配套的工具可以供我们使用。

    说白了,规范就是用工具进行强约束。规范执行方案如下:

    既然有了方案,就会按照某些规则执行,以下是 Google AnguarJS 规范的要求:

    规范目标

    - 允许通过脚本生成 CHANGELOG.md

    - 可以通过范围的关键词,快速的搜索到指定版本

    git log HEAD --grep feat(package.json) # 在package.json文件里新增的特性。

    格式要求

    <type>(<scope>): <subject>  <BLANK LINE>      <body>  <BLANK LINE><footer>

    - 消息只占用一行,任何行都不能超过 100 个字符

    - 允许使用 GitHub 以及各种 Git 工具阅读消息

    - 提交消息由页眉、正文和页脚组成,由空行分隔

     

    <type>

    代表某次提交的类型,比如是修复一个 bug 或是增加一个 feature,类型如下:

    <scope>

    范围可以是指定提交更改位置的任何内容,如:

    - 对 package.json 文件新增依赖库,chore(package.json): 新增依赖库

    - 或对代码进行重构,refacto(weChat.vue): 重构微信进件

    <subject>

    如果没有更合适的范围,可以直接写提

    规范建设

    初期我们在互联网上搜索了大量有关git commit规范的资料,但只有Angular规范是目前使用最广的写法,比较合理和系统化,并且有配套的工具(IDEA就有插件支持这种写法)。最后综合阿里巴巴高德地图相关部门已有的规范总结出了一套git commit规范。

    commit message格式

    <type>(<scope>): <subject>

     

    总结

    编码规范、流程规范在软件开发过程中是至关重要的,它可以使我们在开发过程中少走很多弯路。Git commit规范也是如此,确实也是很有必要的,几乎不花费额外精力和时间,但在之后查找问题的效率却很高。作为一名程序员,我们更应注重代码和流程的规范性,永远不要在质量上将就。

  • 相关阅读:
    收款 借贷
    Oracle Contracts Core Tables
    mtl_material_transactions.logical_transaction
    OM订单登记不了的处理办法
    子库存转移和物料搬运单区别
    WPF中使用DataGridView创建报表控件
    vi编辑器命令
    成绩管理系统中的成绩报表SQL
    ASP.Net中传递参数的常见方法
    MySQL的SET字段类型
  • 原文地址:https://www.cnblogs.com/ibytecoding/p/14695555.html
Copyright © 2011-2022 走看看