这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » [学习笔记]GitCommit规范

共2条 1/1 1 跳转至

[学习笔记]GitCommit规范

院士
2024-04-24 09:15:20     打赏

Git Commit规范

一、概述

 <type>(<scope>): <subject> //必须,并且需要言简意赅
 <BLANK LINE>  //自动生成
 <body> //详细说明
 <BLANK LINE>  //自动生成
 <footer> //特殊备注

在上述格式中:

第1行为必须,并且需要言简意赅;

第2行为系统自动生成;

第3行为详细说明;

第4行为系统自动生成;

第5行为特别说明;

二、Type类型

用于说明git commit的类别,只允许使用下面的标识:

  • feat:添加新特性

  • fix/to

    • fix:产生 diff 并自动修复此问题。适合于一次提交直接修复问题

    • to:只产生 diff不 自动修复此问题。适合于多次提交。最终修复问题提交时使用 fix

  • docs:仅仅修改了文档

  • style:仅仅修改了空格、格式缩进、逗号等等,不改变代码逻辑

  • refactor:代码重构,没有加新功能或者修复 bug

  • perf:优化相关,比如提升性能、体验

  • test:增加测试用例

  • chore:改变构建流程、或者增加依赖库、工具等

  • revert:回滚到上一个版本

  • merge:代码合并

  • sync:同步主线或分支的Bug

  • build: 打包

  • ci:持续集成

注意:如果type为feat和fix,则该 commit 将肯定出现在 Change log 之中。其他情况(docs、chore、style、refactor、test)由你决定,要不要放入 Change log,建议是不要。

三、scope(可选)

scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。如果修改影响了不止一个 scope,你可以使用 * 代替。

四、subject(必须)

subject 是 commit 目的的简短描述

  • 不超过50个字符;

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

  • 第一个字母小写;

  • 结尾不加句号或其他标点符号

五、body(可选)

Body 部分是对本次 commit 的详细描述,可以分成多行。

有两个注意点。

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

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

六、footer(可选)

Footer 部分只用于两种情况:

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

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

以下是针对上述情况的示例:

 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.
 Closes #234
 
 ## 也可以一次关闭多个 issue
 Closes #123, #245, #992

七、特殊情况

Revert情况

如果当前 commit 用于撤销以前的 commit,则必须以revert:开头,后面跟着被撤销 Commit 的 Header。

 revert: feat(pencil): add 'graphiteWidth' option
 
 This reverts commit 667ecc1654a317a13331b17617d973392f415f02.

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

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

八、操作实现

git commit命令下,

  1. 使用第一个-m输入<type>(<scope>): <subject>的信息内容;

  2. 再使用一个-m输入<body>的详细信息;

  3. 如果有foot内容,再使用一个-m输入<footer>的详细信息;





关键词: 笔记     git     commit    

高工
2024-04-24 13:26:31     打赏
2楼

谢谢分享


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]