一个软件就能规范git commit!提升Readability![Conventional Commits]

在日常的研发流程中,git commit message用来描述本次提交的内容,帮助自己回忆,也帮助其他人理解改动。
但是,总有一部分人喜欢随随便便瞎写message,等到别人问为什么改这行代码时,就只能回答“我也不记得了”。久而久之,代码质量就这样垮掉了。
相信每一个人都见过这样的噩梦message:

* 6f01c3 update
* 80ac3f fix
* 11b4f1 1
* 27894f add

commit规范

目前,业界内最流行的commit message规范是约定式提交规范(conventional commits):

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

[optional body]

[optional footer(s)]

Type

必填的,用于表示当前提交的意图,使用以下的一项:

feat: 引入功能
fix: 修复问题
build: 涉及构建系统的改动
docs: 只涉及文档的改动
refactor: 代码重构,不涉及问题修复和功能引入
perf: 性能优化
style: 修改代码风格,不影响代码含义;(空格, 格式化, 缺少分号 等)
test: 添加测试 或 修复测试
ci:  修复CI配置和脚本
revert: 回滚之前的提交
chore: 构建过程、工具库的修改;(文档生成工具)

Scope

可选的,用于描述改动的范围。

通常,复杂的项目会被拆分成子目录、包、子模块等组织单元,这些单元可以作为Scpoe的内容;
一些简单的项目可能没有拆分成多个单元,这时可以不填写scope;

Subject

必填的,用于简洁地描述改动,

使用祈使句,现在时;"change" not "changed" nor "changes"
首字母不需要大写
结尾不需要加符号(.)

Body

可选的,用于补充描述改动,和Subject间隔一行;

应当包含修改的原因,关注修改前后的行为差别;
可以描述你对于改动的考虑因素(改动带来的副作用、代码中的坑)
不用描述修改了什么文件;

Footer

可选的,用于描述Breaking Changes、需求/BUG相关的信息;

和Subject/Body间隔一行;

Breaking changes
如果改动不兼容之前的版本,可以使用 BREAKING CHANGE: 标记这是一个Breaking Changes. 比如:
BREAKING CHANGE: refactor to use new APIs, all legacy APIs will be deprecated.

Referencing issues
Footer也可以使用Implements描述实现了某个需求,可以使用Closes描述修复了某个BUG;
可以在关键词之后补充需求/BUG的标题或链接;比如:
Closes #123, #456 Implements #543

你问我支不支持这个规范,我当然支持啊,我当然希望项目都是这样的message。
但是你问我愿不愿意这样写,那我当然不愿意啊,因为写一个这样的commit也太花时间了QAQ。
还是希望有个提交工具可以用,不用每次都自己写。

目前你能搜到的工具都是命令行工具,比如commitizen、cz-conventional-changelog、commitlint、husky。个人感觉命令行工具使用起来还是太原始了,不如GUI工具,比如Easy Commit。

Easy Commit

Easy Commit是一款开源的桌面软件,用来提交规范的commit message。
GitHub - 0renlyhuang/EasyCommit: A desktop app for conventional commits.

在这里插入图片描述

Easy Commit是基于Git Hooks原理实现的,支持PC、MacOS、Linux。
这个软件还是MIT License的,可以随便用。
按照步骤选择好Git目录后,每次执行git commit -m,Easy Commit都会被拉起,在软件内就可以提交规范的git message了。
就一句话,好用!Star支持!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值