如何写出干净的 Git Commit

大家好,我是楷鹏。

写一份干净的 Git Commit,不仅赏心悦目,也有诸多好处,比如

  1. 为项目或者仓库生成 change log
  2. 方便在其他一些 Git 工具使用,比如 CI/CD、代码协作和审计平台、发版工具

这是 AngularJS 仓库的 Git Commit,干净,简洁,统一

↪️ github.com/angular/ang...

AngularJS 对 Git Commit 做了规范,值得借鉴。

Commit 组成:

xml 复制代码
<header>
<空一行>
<body>
<空一行>
<footer>

🌰 举例:

对应如下:

其中

  • header 是必要的
  • body 也是必要的,除了类型为 docs 之外,body 的内容必须大于 20 个字符
  • footer 是可选的,比如放置引用的 issue

header 由三部分组成:

sql 复制代码
<类型>(<作用域>): <主题>
  │       │             │
  │       │             └─⫸ 简短总结,现在时态,不需要首字母大写,末尾不用加句号
  │       │
  │       └─⫸ Commit 作用域: animations|bazel|benchpress|common|compiler|compiler-cli|core|
  │                          elements|forms|http|language-service|localize|platform-browser|
  │                          platform-browser-dynamic|platform-server|router|service-worker|
  │                          upgrade|zone.js|packaging|changelog|docs-infra|migrations|
  │                          devtools
  │
  └─⫸ Commit 类型: build|ci|docs|feat|fix|perf|refactor|test

类型一共有 8 种:

类型 描述
build 影响构建系统或外部依赖的更改 (示例范围:gulp, broccoli, npm)
ci 对 CI 配置文件和脚本的更改 (示例:CircleCi, SauceLabs, GitHub Workflow)
docs 仅文档更改
feat 新功能
fix 错误修复
perf 改善性能的代码更改
refactor 既不修复错误也不添加功能的代码更改
test 添加缺失测试或更正现有测试

作用域根据工程团队自己定义,可参考 AngularJS 定义的作用域列表:

↪️ github.com/angular/ang...

主题要简单总结,如果团队使用英语,语法上需符合:

  • 祈使句,并且是现在时态,比如 "change",而不是 "changed" 或者 "changes"
  • 首字母不需要大写
  • 结尾不需要逗号或者句号

🌰 举例

csharp 复制代码
docs(server): add javadoc comments on methods
csharp 复制代码
feat(core): add new command 'Upload' to UI
sql 复制代码
fix: update GET headers (#142)

Reference

medium.com/@menuka/wri...


One more thing:

json 复制代码
{
  "公众号": "程序员楷鹏",
  "简介": "世界有 10 种人,一种是懂二进制的,另外一种是不懂的",
  "还有": "你肯定会关注的对吧彦祖?"
}
相关推荐
南巷羽43 分钟前
用 TRAE Work 把 20 条 GitHub Issue 变成可复核的需求优先级清单
github·产品
栩栩云生2 小时前
AI 最大的安全问题:它让”发送数据”看起来像”继续思考”
安全·github·agent
m4Rk_3 小时前
【论文阅读】Agent 记忆机制(34):MemoryBank——用遗忘曲线管理可强化的长期对话记忆
论文阅读·人工智能·学习·开源·github
一点一木4 小时前
Seed Evolving 深度测评:我用它造了一个 AI 出题工具
人工智能·python·github
mao_design5 小时前
Netlify搭建博客
github
Jay-r5 小时前
极简博客搭建(精简版):textlog + GitHub Pages
python·github·教程·集成学习·博客网站·技术教程·自我成长
本地化文档7 小时前
gazebosim-docs-l10n
机器人·github·gitcode·sphinx
.Hypocritical.8 小时前
Git 全套实操|配置 /.gitignore/ 分支合并 / 冲突解决 /git stash 完整教程
git
逛逛GitHub8 小时前
微软刚开源了 1 个神器:录一遍操作,自动学习内化成 Skill。
github
来日方长。。。。long8 小时前
Hermes Agent橙皮书共读|第三篇:保姆级实战部署|本地/VPS从零搭建Hermes
ide·git·hermes