热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[译]AngularJSGit提交信息规范

目标生成CHANGELOG.md识别不重要的提交在浏览Git历史时提供更多信息格式化提交信息恢复(Revert)信息头部-必需-必需-文
  • 目标

    • 生成 CHANGELOG.md

    • 识别不重要的提交

    • 在浏览 Git 历史时提供更多信息

  • 格式化提交信息

    • 恢复(Revert)

    • 信息头部

      - 必需- 必需- 文本

    • 信息主体

    • 信息尾部

      - 重大更改(Breaking changes)- 引用讨论(Referencing issues)

目标

  • 能够通过脚本生成 CHANGELOG.md

  • 能让 git bisect 过程忽略不重要的提交

  • 在浏览历史时提供更好的信息

生成 CHANGELOG.md

我们在 changeling 里使用这三个标志: new features, bug fixes, breaking changes.
在做一个发行版的时候,这个列表可以通过脚本来生成,通过关联这些相关的提交。
自然,你可以在实际发行之前编辑这些变更日志,但是这样子可以很容易的生成骨架。

列出自最近一次发行以来所有的主体(提交信息第一行)

>> git log HEAD —pretty=format:%s

在本次发行内的新功能

>> git log HEAD —grep feature

识别不重要的提交

通常有很多的Formatting changes(adding/removing spaces/empty lines, indentation), missing semicolons, comments.所以当你查找一些变更的时候,你可以忽略这些提交 - 这些提交里面没有业务逻辑变更。

当二分查找的时候,你可以忽视这些提交通过键入以下命令:

>> git bisect skip $(git rev-list —grep irrelevant HEAD)

在浏览历史时提供更多信息

这将会增加一种“context”信息
看这些信息(通过查看最近的 angularjs 的提交信息)

  • Fix small typo in docs widget (tutorial instructions)

  • Fix test for scenario.Application - should remove old iframe

  • docs - various doc fixes

  • docs - stripping extra new lines

  • Replaced double line break with single when text is fetched from Google

  • Added support for properties in documentation

所有这些信息都尝试去表明更改的位置,但是它们没有使用公共的规范
再看看这些信息:

  • fix comment stripping

  • fixing broken links

  • Bit of refactoring

  • Check whether links do exist and throw exception

  • Fix sitemap include (to work on case sensitive linux)

你能猜出这里面到底装了些什么?这些信息缺乏重点。
也许还有这些代码:docs, docs-parser, compiler, scenario-runner, ...
我知道,你可以通过查看哪些文件被改变来确定这个提交到底做了什么,但是这样子太麻烦了。
当查看 git 历史信息的时候我们可以看到大家都在努力保持一致,但是缺少一个公共规范。

提交信息的格式化

():

提交信息的任意一行都不能超过100个英文字符!这个能让信息在 github 上和 git 工具里更容易查看。

恢复

如果提交是用于恢复一个更早的提交,这个头部应该以“revert:”开始,接下来是被恢复提交的头部,在主体内应该写“This reverts commit .”,hash 的位置就是被恢复提交的 sha 值

信息头部

信息头部应该是包含改变的一条单行简要描述,包括一个类型,一个可选的范围和一个主题

必需的
这是用于说明提交的类型,下列是7个标志。

  • feat: 新功能

  • fix : 修补bug

  • docs: 文档

  • style: 格式化,缺少分号等

  • refactor

  • test: 增加缺少的测试

  • chore 维护

必需的
范围可以是任何制定的提交更改的地方。例如 $location, $browser, $compile, $rootScope, ngHref, ngClick, ngView等等
文本
这是变更的简单描述

  • 以动词开头,使用第一人称现在时,比如change,而不是changed或changes

  • 第一个字母小写

  • 结尾不加句号

信息主体

这部分是对本次提交的详细描述,可以分成多行

  • 使用第一人称现在时,比如使用 change 而不是 changed 或者 changes。

  • 说明代码变更的冬季,以及和以前代码的对比

信息尾部

只有两种情况:
不兼容变动
所有不兼容变动应该被列为不兼容变动块放在信息尾部,应该以“BREAKING CHANGE:”开始,后面是对变动的描述,以及变动的动机和迁移方法
引用讨论
如果当前提交是针对某个讨论,那么可以在尾部关闭这个讨论
Closes #234
或者同时关闭多个讨论
Closes #123, #245, #992



推荐阅读
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • x86 linux的进程调度,x86体系结构下Linux2.6.26的进程调度和切换
    进程调度相关数据结构task_structtask_struct是进程在内核中对应的数据结构,它标识了进程的状态等各项信息。其中有一项thread_struct结构的 ... [详细]
  • Imdevelopinganappwhichneedstogetmusicfilebystreamingforplayinglive.我正在开发一个应用程序,需要通过流 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
author-avatar
LinerContourMakeup_669
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有