将 docs/ 根目录下的 nginx 相关文档统一移动到 docs/nginx/ 子目录, 提高文档组织性和可维护性。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
135 lines
3.0 KiB
Markdown
135 lines
3.0 KiB
Markdown
# Git Commit Message 规范
|
||
|
||
本项目采用 [Conventional Commits](https://www.conventionalcommits.org/) 规范。
|
||
|
||
## 格式
|
||
|
||
```
|
||
type(scope): subject
|
||
|
||
[optional body]
|
||
|
||
[optional footer(s)]
|
||
```
|
||
|
||
## 类型(Type)
|
||
|
||
| 类型 | 说明 | 示例 |
|
||
|------|------|------|
|
||
| `feat` | 新功能 | feat(proxy): add upstream health check |
|
||
| `fix` | 修复 bug | fix(server): correct graceful shutdown timing |
|
||
| `docs` | 文档变更 | docs(config): update directive reference |
|
||
| `refactor` | 重构(不改变功能行为) | refactor(http): simplify header parsing |
|
||
| `test` | 测试相关 | test(proxy): add load balancer unit tests |
|
||
| `perf` | 性能优化 | perf(event): reduce connection memory overhead |
|
||
| `chore` | 构建、工具、依赖 | chore(deps): bump go to 1.26 |
|
||
| `style` | 代码格式(不影响逻辑) | style(log): fix indentation |
|
||
|
||
## 范围(Scope)
|
||
|
||
范围标识变更涉及的模块,基于项目结构划分:
|
||
|
||
| 范围 | 说明 |
|
||
|------|------|
|
||
| `server` | 服务器启动、生命周期管理 |
|
||
| `proxy` | 反向代理、上游连接 |
|
||
| `config` | 配置解析、指令处理 |
|
||
| `http` | HTTP 协议处理、请求响应 |
|
||
| `stream` | TCP/UDP 流代理 |
|
||
| `event` | 事件循环、连接管理 |
|
||
| `log` | 日志系统 |
|
||
| `tls` | SSL/TLS 支持 |
|
||
| `core` | 核心模块、公共工具 |
|
||
|
||
## 规则
|
||
|
||
### Subject(必填)
|
||
|
||
- 使用祈使句(add、fix、update,而非 added、fixes)
|
||
- 首字母小写
|
||
- 不以句号结尾
|
||
- 限制 50 字符以内
|
||
|
||
### Body(可选)
|
||
|
||
- 说明变更的**原因**和**影响**
|
||
- 与 subject 空一行
|
||
- 每行 72 字符以内
|
||
|
||
### Footer(可选)
|
||
|
||
- 关联 Issue:`Closes #123`、`Fixes #456`
|
||
- Breaking change:`BREAKING CHANGE: xxx`
|
||
|
||
## 示例
|
||
|
||
### 简单提交
|
||
|
||
```
|
||
feat(http): add HTTP/2 protocol support
|
||
```
|
||
|
||
### 带 Body
|
||
|
||
```
|
||
fix(proxy): resolve upstream connection leak
|
||
|
||
Connection pool was not properly releasing idle connections
|
||
when upstream server closed the socket, causing resource
|
||
exhaustion under high load.
|
||
|
||
Fixes #42
|
||
```
|
||
|
||
### Breaking Change
|
||
|
||
```
|
||
refactor(config)!: change directive syntax for upstream block
|
||
|
||
BREAKING CHANGE: `upstream` block now requires `server` directive
|
||
instead of direct address specification. Update config files:
|
||
|
||
upstream backend {
|
||
server 127.0.0.1:8080; # new format
|
||
}
|
||
```
|
||
|
||
### 多范围
|
||
|
||
```
|
||
feat(server,proxy): support dynamic upstream reload
|
||
|
||
Allow adding/removing upstream servers without full restart.
|
||
```
|
||
|
||
## 工具配置(可选)
|
||
|
||
### commitlint
|
||
|
||
```json
|
||
// .commitlintrc.json
|
||
{
|
||
"extends": ["@commitlint/config-conventional"],
|
||
"rules": {
|
||
"scope-enum": [2, "always", [
|
||
"server", "proxy", "config", "http", "stream",
|
||
"event", "log", "tls", "core"
|
||
]]
|
||
}
|
||
}
|
||
```
|
||
|
||
### Git Hook (husky)
|
||
|
||
```bash
|
||
# .husky/commit-msg
|
||
npx --no -- commitlint --edit $1
|
||
```
|
||
|
||
---
|
||
|
||
## 参考
|
||
|
||
- [Conventional Commits](https://www.conventionalcommits.org/)
|
||
- [Angular Commit Guidelines](https://github.com/angular/angular/blob/master/CONTRIBUTING.md#commit)
|
||
- [Go Project Commit Style](https://github.com/golang/go/wiki/CommitMessage) |