玩笑
零分的 Commit message:
| |
满分的 Commit message:
| |
我说 emoji 大于一切了,有没有懂的。
Git Commit 规范
网上关于 Git Commit 规范的文章很多,这里就简单摘抄一下作为备忘录吧。
Commit message 格式
| |
Commit message 包含三个部分,分别是 Header、Body 和 Footer,其中 Header 是必需的,后两者是可选的。
Header
Header 又包含三个部分,分别是 type、scope 和 subject,其中 scope 是可选的。
type 用于说明 commit 的类型,可以使用下面这些。
| |
scope 用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。
subject 是对本次 commit 的简短描述,不超过50个字符。以动词开头,使用第一人称现在时,结尾不加句号。
Body
Body 部分是对本次 commit 的详细描述,可以分成多行。与 subject 一样使用第一人称现在时,但结尾可以正常加句号。Body 应该说明代码变动的动机,以及与以前行为的对比。
Footer
Footer 部分只用于两种情况。
不兼容变动:如果当前代码与上一个版本不兼容,则 Footer 部分以BREAKING CHANGE开头,后面是对变动的描述、以及变动理由和迁移方法。
关闭 Issue:如果当前 commit 针对某个 issue,那么可以在 Footer 部分关闭这个 issue ,当然也可以一次关闭多个 issue 。
Git Commit 插件
VSCode 推荐安装 git-commit-plugin ,这个插件会在提交信息上方增加一个小按钮,点击之后可以跟随指示一步步填写 commit message,比较有交互性。而且这个插件的模板还自带 emoji,大幅提高了 Commit message 的可读性(并非如此)。对了,emoji 和 type 之间其实有一个空格哦。
JetBrains 家的 IDE 则可以尝试 Git Commit Message Helper,这个插件可以在设置里自定义提交模板,为了统一,我会把提交模板设置得和 git-commit-plugin 一样。使用时,同样是点击提交信息上方的按钮,不过这个插件不是一步步来的,是直接把提交信息拆成了多个输入框,更加直观。
JetBrains 的插件还有 AI 功能,不过我不是很喜欢 AI 帮我写 Commit message,就没有试过。
更适合 Hugo 的 type
写了几篇文章,提交过几次之后,我发现好像所有文章相关的提交都只能塞进 docs 类型里,而有一些类型则几乎用不到,这让我萌生了修改 type 的想法。
Git 本身对于 Commit message 没有什么要求,我打算继续使用上文提到的 Commit message 格式,仅将 type 修改成更适合 Hugo 的样子。
新的 type
| |
配套的 emoji
| |
感觉图钉 emoji 配 modify 不是特别搭,但也没什么更好的选择了。
示例
| |
scope 用 categories ,subject 用 title ,body 用 description,都是 Frontmatter 里有的。