ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

git commit 规范

2021-09-30 16:02:12  阅读:105  来源: 互联网

标签:git fix 规范 提交 使用 commit scope


git commit 规范

目录

概述

参考文章:


在我的个人的编码体验中,写完代码后add .commit -m xxxpush这几个步骤往往是最大快人心的,每每潇洒地输完这几个命令后胸中就充满了自豪感!

可冷静下来回过头再去思考自己写下代码、以及使用 git 的目的或者说初衷时,不禁悲从心来,这么一款强大的工具在我手上变成了一种自我愉悦的玩具(至今没有使用到“版本控制”的相关功能,只是一个远程备份平台),简直暴殄天物。

那怎么办?当然只有一点点地改进呗。具体的改进点有许多,后续会陆续编成文字发布在博客,今天只记录一下 commit 的规范。


commit 最重要的无非就是附带的提交信息,提交信息要准确的表明与修改相关的可能产生实际影响的因子(我是这样理解的),翻阅了几篇博文后,终于找到了一些业界普遍认可的 commit 相关的规范。

不就是 commit 信息吗?我说人话不就行了,还有人看不懂人话?话大家都会说,高效且简洁的说话却不是人人都会,或者说每个人说话的方式和侧重点都不同,比如有人说话就诗情画意的:

image-20210930145125985


当然,自己说的话肯定自己都能懂,问题是在大多数情况下,你说话是为了让别人理解你自己。满口之乎者也,往往会被暴打!


commit 规范

对于一般的 commit,我们往往不需要过为详尽的阐述,言简意赅即可,所以,请使用以下的格式:

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

其中最关键的是第一行的部分(除此以外的部分除非有特殊的要求,否则往往不用填写):

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

type(必须)

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

  • feat:添加新特性
  • fix/to
    • fix:产生 diff 并自动修复此问题。适合于一次提交直接修复问题
    • to:只产生 diff不 自动修复此问题。适合于多次提交。最终修复问题提交时使用 fix
  • docs:仅仅修改了文档
  • style:仅仅修改了空格、格式缩进、逗号等等,不改变代码逻辑
  • refactor:代码重构,没有加新功能或者修复 bug
  • perf:优化相关,比如提升性能、体验
  • test:增加测试用例
  • chore:改变构建流程、或者增加依赖库、工具等
  • test:增加测试
  • revert:回滚到上一个版本
  • merge:代码合并
  • sync:同步主线或分支的Bug

如果不想使用这么生硬的文字,还可以通过更加有趣的 emoji 来表示咱么的提交类型,这个网站罗列了我们可能用到的提交时使用的 emoji 并且提供了搜索功能,使用体验非常 nice,但是要注意,团队开发一定要在其他成员知道相关 emoji 含义的前提下使用。使用的方法就是

:emoji: (scope) subject

scope(可选)

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


subject(必须)

subject 是 commit 目的的简短描述

  • 不超过50个字符;
  • 以动词开头,使用第一人称现在时,比如change,而不是changedchanges
  • 第一个字母小写;
  • 结尾不加句号或其他标点符号

总结

最后,我们的一个 commit message 可能长成这样:

fix(DAO):用户查询缺少username属性 
feat(Controller):用户查询接口开发

要知道 git 里面和版本控制相关的学问可太多了,不要着急,别想一口吃成胖子,慢慢来,日进一卒,先把习惯一点点地积累起来!

极客时间上有一门相关的非常详细的课程:https://time.geekbang.org/course/intro/100021601,请大力支持知识付费!

标签:git,fix,规范,提交,使用,commit,scope
来源: https://www.cnblogs.com/locustree/p/15357177.html

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有