• Git Commit Message 规范实践


    背景

    本文总结了项目实践中的 Commit Message 规范。

    任何一笔提交都是有原因的,因此 commit message 需要说明该笔提交的 目的. 我们主要借鉴AngularJS Git Commit Message Conventions
    规范commit message想要达到的目的主要有:

    • 提供更多更准确的信息。便于review,更容易发现潜在问题。便于查看历史记录回溯
    • 发布版本的时候可以通过脚本生成changelog
    • 可以对commit message信息进行过滤筛选

    commit message 格式说明,都是必填。
    ():

    其中 Allowed

    • feat (feature)
    • fix (bug fix)
    • docs (documentation)
    • style (formatting, missing semi colons, …)
    • refactor
    • test (when adding missing tests)
    • chore (maintain)
    • ui (UI 微调,不影响功能逻辑)

    : JIRA issue id。比如ANDROID_INFRA-74
    : 目前要求是有内容就行。最好不要超过50个字。
    : 空行。用来分隔subject和body, 分隔body 和 test affect。

    : 关于change的相关描述。可以多行,可以包含空行。 : 测试影响说明。必须是关键字“测试影响”开头的一段说明。可以多行,可以包含空行。 注意:(): 里面的":"中英文都兼容。

    示例

    feat(ANDROID_INFRA-90): seperate registration from identity verification

    原来的两个接口实现不动,但是标为 Deprecated

    1. /mobile/consignor/register/quick: doRegister()
    2. /mobile/consignor/real-name-authentication: doRealNameCertify()

    新增两个接口:

    1. /mobile/consignor/register/quick: doQuickRegister()
    2. /mobile/consignor/identity-auth-request: submitIdentityVerifyRequest()

    测试影响: 注册和验证流程

    Feature

    feat(ANDROID_INFRA-74): 功能简单描述
    <空一行>
    <功能具体的具体描述>
    实现方法(可选):
    <具体实现方法的描述>
    <空一行>
    测试影响:
    <描述对现有功能的影响,测试需要注意的地方>
    <较大新功能和逻辑性较强的功能需要附带部分测试用例>

    Bug

    fix(ANDROID_INFRA-74): 简单描述
    <空一行>
    <关于Bug的一般说明>
    产生原因:
    <描述Bug的产生原因>
    解决方法:
    <描述如何修复bug>
    <空一行>
    测试影响:
    <描述对现有功能的影响,测试需要注意的地方>

    Refactor

    refactor(ANDROID_INFRA-74): 重构了什么地方的代码
    <空一行>
    <对重构内容、目的的相关描述>
    所做修改:
    <说明你做了那些修改>
    <空一行>
    测试影响:
    <描述对现有功能的影响,测试需要注意的地方>

    Docs

    docs(ANDROID_INFRA-74): 完善xxx文档
    <空一行>
    <修改原因>
    <空一行>
    测试影响:
    <描述对现有功能的影响,测试需要注意的地方>

    Test

    test(ANDROID_INFRA-74): 增加xxx方法自动测试案例
    <空一行>
    <测试详情>
    <空一行>
    测试影响:
    <描述对现有功能的影响,测试需要注意的地方>

    Style

    style(ANDROID_INFRA-74): check style 修改
    <空一行>
    <移除了哪些资源和内容>
    <空一行>
    测试影响:
    <描述对现有功能的影响,测试需要注意的地方>

    Chore

    chore(ANDROID_INFRA-74): 完善脚本
    <空一行>
    <简单介绍>
    <空一行>
    测试影响:
    <描述对现有功能的影响,测试需要注意的地方>

    每个Merge Request只有一个Commit

    各位可以多次 commit, 但是在提交 Merge Request 的时候只能有一次 Commit message,具体操作:

    git rebase -i upstream/master

    <把所有的Commit Message按上述格式融合>

    <如果有conflict请解决conflict>

    git push origin --force

    提交merge request

    小结

    commit 提交时需要注意 一次提交对应一个问题,一来方便 大家对此次的提交 code Review ,二来方便后期定期问题,提交时注意规范使用空行及空格(比如中英文之间添加空格、规范使用【】或者 「 」等,具体可以参考附录5)。

    附录

  • 相关阅读:
    ios上传图片旋转90度的解决办法 - nextcloud
    卸载重装最新版mysql数据库亲测有效
    Mysql的JDBC增删改查
    std::map使用自定义的数据结构当做key
    继承和多态的深度剖析
    学校官网首页 2页网页设计(HTML+CSS+JavaScript)
    Centos7常用基本命令使用(时间日期类、用户组管理类、文件权限类)
    视频转格式用什么工具?mp4格式转换器,好用的视频格式转换器
    Os-ByteSec
    HTTP协议的请求方式有哪些
  • 原文地址:https://blog.csdn.net/jun5753/article/details/126713685