首页 > 其他分享 >Git commit的格式规范

Git commit的格式规范

时间:2024-04-29 11:55:19浏览次数:25  
标签:Body Git Footer 格式 Header scope commit

这是一条git commit命令
$ git commit -m "hello world"

一般来说,可以想怎么写怎么写,但是规范的格式能够让审阅部分更快,

image

介绍Angular 规范(见上图),这是目前使用最广的写法,比较合理和系统化,并且有配套的工具。

Commit message 的格式

每次提交,Commit message 都包括三个部分:Header,Body 和 Footer。

<type>(<scope>): <subject>
// 空一行
<body>
// 空一行
<footer>
=============================================
// 案例:

fix(doc-gen): use the correct lodash method in dgeni processor (index……By --> keyBy)

The `indexBy()` method was renamed to `keyBy()` in lodash v4 (see
lodash/lodash@b1d52cc). This commit
updates all usages of `indexBy()` to `keyBy()`.

Closes #234

其中,Header 是必需的,Body 和 Footer 可以省略。

不管是哪一个部分,任何一行都不得超过72个字符(或100个字符)。这是为了避免自动换行影响美观

1 Header

Header部分只有一行,包括三个字段:type(必需)、scope(可选)和subject(必需)。

(1)type

type用于说明 commit 的类别,只允许使用下面7个标识。

feat:新功能(feature)fix:修补bugdocs:文档(documentation)style: 格式(不影响代码运行的变动)refactor:重构(即不是新增功能,也不是修改bug的代码变动)test:增加测试chore:构建过程或辅助工具的变动

如果typefeatfix,则该 commit 将肯定出现在 Change log 之中。其他情况(docschorestylerefactortest)由你决定,要不要放入 Change log,建议是不要。

(2)scope

scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。

(3)subject

subject是 commit 目的的简短描述,不超过50个字符。

以动词开头,使用第一人称现在时,比如change,而不是changed或changes第一个字母小写结尾不加句号(.)

2 Body

Body 部分是对本次 commit 的详细描述,可以分成多行。下面是一个范例。

More detailed explanatory text, if necessary. Wrap it to
about 72 characters or so.

Further paragraphs come after blank lines.

  • Bullet points are okay, too
  • Use a hanging indent

有两个注意点。

(1)使用第一人称现在时,比如使用change而不是changedchanges

(2)应该说明代码变动的动机,以及与以前行为的对比。

Footer 部分只用于两种情况。

(1)不兼容变动

如果当前代码与上一个版本不兼容,则 Footer 部分以BREAKING CHANGE开头,后面是对变动的描述、以及变动理由和迁移方法。

BREAKING CHANGE: isolate scope bindings definition has changed.

    To migrate the code follow the example below:

    Before:

    scope: {
      myAttr: 'attribute',
    }

    After:

    scope: {
      myAttr: '@',
    }

    The removed `inject` wasn't generaly useful for directives so there should be no code using it.

(2)关闭 Issue

如果当前 commit 针对某个issue,那么可以在 Footer 部分关闭这个 issue 。

Closes #234

也可以一次关闭多个 issue 。

Closes #123, #245, #992

4 Revert

还有一种特殊情况,如果当前 commit 用于撤销以前的 commit,则必须以revert:开头,后面跟着被撤销 Commit 的 Header。

revert: feat(pencil): add 'graphiteWidth' option

This reverts commit 667ecc1654a317a13331b17617d973392f415f02.

Body部分的格式是固定的,必须写成This reverts commit &lt;hash>.,其中的hash是被撤销 commit 的 SHA 标识符。

如果当前 commit 与被撤销的 commit,在同一个发布(release)里面,那么它们都不会出现在 Change log 里面。如果两者在不同的发布,那么当前 commit,会出现在 Change log 的Reverts小标题下面。

标签:Body,Git,Footer,格式,Header,scope,commit
From: https://www.cnblogs.com/hippofly/p/18165372

相关文章

  • Git 代码管理规范
     Git代码管理规范  分支命名master分支master为主分支,也是用于部署生产环境的分支,需要确保master分支稳定性。master分支一般由release以及hotfix分支合并,任何时间都不能直接修改代码。develop分支develop为开发环境分支,始终保持最新完成以及bug修复后的代码,......
  • .h5ad数据结构解释(anndata 数据格式)
    官方网站:https://anndata.readthedocs.io/en/latest/下面的内容官网都有概述h5ad文件提供了一种可扩展的方式来记录数据及其注释(annotation),主要包含X,obs,var,uns等多个部分,分别存储不同的信息。结构如下图所示X是表达量矩阵,用来联系obs和var。具体来说X是一个稀疏......
  • git常用命令
    gitinit初始化-在一个文件夹下创建.git隐藏文件(如果子目录存在.git需要先进行删除,否则提示创建失败)gitclone克隆代码库gitpush/pull推代码/拉代码gitbranch--sort=committerdate按提交的时间顺序进行展示分支gitcheckout-b创建并切换分支gitcheckout切......
  • 一个开源轻量级的C#代码格式化工具(支持VS和VS Code)
    前言C#代码格式化工具除了ReSharper和CodeMaid,还有一款由.NET开源、免费(MITLicense)、轻量级的C#语言代码格式化工具:CSharpier。工具介绍CSharpier是一款开源、免费、轻量级的C#语言代码格式化工具。它使用Roslyn来解析你的代码,并根据其自身的规则重新格式化代码。工具支持IDE......
  • git submodule 命令用法及含义
     gitsubmoduleinit 命令的作用是初始化Git仓库中的子模块。当一个Git仓库包含其他Git仓库作为子模块时,首次克隆这样的仓库并不会自动下载子模块的内容。执行`gitsubmoduleinit`会进入子模块目录,读取.gitmodules配置文件,然后设置本地的远程仓库URL,为后续的子模块内......
  • 问题:“git”不是内部命令
    问题:明明刚安装完git,在使用git命令时却显示不是内部命令因为没有配环境变量1、找到git安装目录,找到git里的bin路径,复制2、打开电脑里的计算机=》属性=》高级系统设置,我的是系统=》系统信息=》高级系统设置选择环境变量环境变量有两处需要改的,用户变量和系统变量,先改用户变......
  • 下载安装git
    如何下载安装Git一、去官网下载gitgit官网地址:https://git-scm.com/download选择自己的系统下载PS:官网下载很慢,可以搜清华大学开源软件,选择适合自己的下载下载完成之后点击安装包安装二、开始安装配置没啥好改的,一直点击“下一步”就好了选择安装的路径其他的一直默......
  • 揭秘Python中的JSON数据格式与Requests模块
    From: https://mp.weixin.qq.com/s/QgGyn2efYtVKI65RwXoiEA------------------------------------------------------------------------------------importpytestimportjsonimportrequestsfromrequests.authimportHTTPBasicAuthfromrequests.adaptersimportHTTPA......
  • [转]Git清除贡献者信息和历史提交记录,将开源项目拉取二次开发时可用到
     如果我们用git与github扒了别人的开源代码,想拿来用到自己项目中,但是提交过后,会发现仓库的历史记录又臭又长,贡献者里还有别人的名字,打算把历史记录全部清除并且让目前所有文件全部变成首次commit的状态。可以试试以下这个方法,包你百试百灵!1.Checkout检出新的分支#orphan参......
  • Github管理代码学习
    版本冲突github代码管理学习。关于版本控制,假如有两个人合作,合作者a修改了合作者b的代码,并在服务器中更新。而合作者b感觉更新的内容是错的,想基于未更新版本进行修改。这种情况该怎么解决在使用GitHub进行代码管理时,如果出现你描述的情况,合作者B可以采取以下几个步骤来解决问题:......