如何优雅的编写git的提交信息

前言

在公司的日常工作当中或者个人的开源项目,将代码提交到代码库时。都会遇到下面这样的对话框,通常都会随便写点内容在里面。

6e9a7fc51aa25cb0247649ab11d88e1f.png

当遇到问题需要回溯的时候就成了给自己造成的麻烦,因为无法通过commit message来非常直观的看到这一次提交了什么,做了哪些修改。这个时候只能一个一个文件打开来看。这个时候如果有规范的提交将会减少不必要的麻烦。

ad0c8d4476e480f3e27cf95b5fee9b12.png

概述

约定式提交规范是一种基于提交信息的轻量级约定。它提供了一组简单规则来创建清晰的提交历史;这更有利于编写自动化工具。通过在提交信息中描述功能、修复和破坏性变更, 使这种惯例与 SemVer 相互对应。

提交说明的结构如下所示:


原文:

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

译文:

<类型>[可选 范围]: <描述>

[可选 正文]

[可选 脚注]

提交说明包含了下面的结构化元素,以向类库使用者表明其意图:

  1. fix: 类型fix 的提交表示在代码库中修复了一个 bug(这和语义化版本中的 PATCH 相对应)。

  2. feat: 类型feat 的提交表示在代码库中新增了一个功能(这和语义化版本中的 MINOR 相对应)。

  3. BREAKING CHANGE: 在脚注中包含 BREAKING CHANGE: 或 <类型>(范围) 后面有一个 ! 的提交,表示引入了破坏性 API 变更(这和语义化版本中的 MAJOR 相对应)。破坏性变更可以是任意 类型 提交的一部分。

  4. fix:feat: 之外,也可以使用其它提交 类型 ,例如 @commitlint/config-conventional(基于 Angular 约定)中推荐的 build:chore:ci:docs:style:refactor:perf:test:,等等。

  5. 脚注中除了 BREAKING CHANGE: <description> ,其它条目应该采用类似 git trailer format 这样的惯例。

其它提交类型在约定式提交规范中并没有强制限制,并且在语义化版本中没有隐式影响(除非它们包含 BREAKING CHANGE)。可以为提交类型添加一个围在圆括号内的范围,以为其提供额外的上下文信息。例如 feat(parser): adds ability to parse arrays.

示例

包含了描述并且脚注中有破坏性变更的提交说明
feat: allow provided config object to extend other configs

BREAKING CHANGE: `extends` key in config file is now used for extending other config files
包含了 ! 字符以提醒注意破坏性变更的提交说明
feat!: send an email to the customer when a product is shipped
包含了范围和破坏性变更 ! 的提交說明
feat(api)!: send an email to the customer when a product is shipped
包含了 ! 和 BREAKING CHANGE 脚注的提交说明
chore!: drop support for Node 6

BREAKING CHANGE: use JavaScript features not available in Node 6.
不包含正文的提交说明
docs: correct spelling of CHANGELOG
包含范围的提交说明
feat(lang): add polish language
包含多行正文和多行脚注的提交说明
fix: prevent racing of requests

Introduce a request id and a reference to latest request. Dismiss
incoming responses other than from latest request.

Remove timeouts which were used to mitigate the racing issue but are
obsolete now.

Reviewed-by: Z
Refs: #123

技术群:添加小编微信并备注进群

小编微信:mm1552923   

公众号:dotNet编程大全    

参考:

  • 1.约定式提交官网:https://www.conventionalcommits.org/zh-hans/

  • 2.完整提交类型列表:

    https://github.com/pvdlg/conventional-changelog-metahub#commit-types

  • al-commits Conventional Changelog:https://github.com/conventional-changelog/standard-version

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Git提交代码时,我们应该遵循规范的提交信息格式,以便让其他人更好地理解这次代码提交的目的和内容。通常,我们可以使用一些工具来约束开发者编写符合规范的提交说明。一个常用的工具是Commitizen,它可以帮助我们生成符合规范的提交信息。 为了使用Commitizen,我们首先需要在项目中安装cz-conventional-changelog包,并将其配置为Git提交时的默认工具。具体操作是在项目的package.json文件中添加以下内容: ``` "scripts": { "cm": "git-cz" }, "config": { "commitizen": { "path": "./node_modules/cz-conventional-changelog" } } ``` 然后,在我们提交代码时,可以使用以下命令替代"git commit": ``` npm run cm ``` 这样,Commitizen就会弹出一个交互式的界面,要求我们填写符合规范的提交信息。通过这种方式,我们可以更好地规范我们的提交信息,提高代码审查、信息查找和版本回退的效率和可靠性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Git 提交规范](https://blog.csdn.net/fd2025/article/details/124543690)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值