大家好,我是楷鹏。

写一份洁净的 Git Commit,不只赏心悦目,也有许多优点,比方

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

怎么写出洁净的 Git Commit

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

怎么写出洁净的 Git Commit

↪️ github.com/angular/ang…

AngularJS 对 Git Commit 做了规范,值得学习。

Commit 组成:

<header>
<空一行>
<body>
<空一行>
<footer>

举例:

怎么写出洁净的 Git Commit
对应如下:
怎么写出洁净的 Git Commit

其中

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

header 由三部分组成:

<类型>(<效果域>): <主题>
  │       │             │
  │       │             └─⫸ 简短总结,现在时态,不需要首字母大写,结尾不必加句号
  │       │
  │       └─⫸ 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”
  • 首字母不需要大写
  • 结尾不需要逗号或许句号

举例

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

Reference

medium.com/@menuka/wri…


One more thing:

{
  "大众号": "程序员楷鹏",
  "简介": "世界有 10 种人,一种是懂二进制的,别的一种是不懂的",
  "还有": "你肯定会重视的对吧彦祖?"
}