签入版本

This commit is contained in:
2026-10-08 17:50:29 +08:00
parent 809750b47e
commit e213a9b31d
444 changed files with 39366 additions and 37533 deletions
@@ -1,7 +1,7 @@
# 12.3 Git 提交规范
:::tip 概述
统一的 Git 提交规范有助于代码审查、版本管理和自动化工具集成。
统一的 Git 提交规范有助于代码审查、版本管理和自动化工具集成。前端工程提供了 commitlint 配置(`ui/commitlint.config.js`,依赖中含 husky / lint-staged),按其规范提交可通过自动化校验。
:::
## Commit Message 格式
@@ -12,18 +12,31 @@
<body>
```
:::info 中文友好
`ui/commitlint.config.js` 的 `headerPattern` 支持中文 type、全角括号与全角冒号,如 `新增(用户): 导入导出功能` 也可通过校验;建议仍统一使用下述标准 type。头部最长 108 字符。
:::
## Type 类型
以 `ui/commitlint.config.js` 的 `type-enum` 为准:
| type | 说明 | 示例 |
|------|------|------|
| `feat` | 新功能 | `feat(user): 新增用户导入导出功能` |
| `fix` | 修复 Bug | `fix(login): 修复验证码过期后仍可使用的问题` |
| `docs` | 文档 | `docs: 更新 API 接口文档` |
| `style` | 代码格式(不影响功能) | `style: 统一代码缩进` |
| `refactor` | 重构 | `refactor(logic): 优化分页查询性能` |
| `perf` | 性能优化 | `perf(dict): 增加字典缓存减少数据库查询` |
| `style` | 代码格式(不影响功能) | `style: 统一代码缩进` |
| `docs` | 文档 | `docs: 更新 API 接口文档` |
| `test` | 测试 | `test: 添加用户模块单元测试` |
| `chore` | 构建/工具 | `chore: 更新 Composer 依赖` |
| `refactor` | 重构 | `refactor(service): 优化分页查询性能` |
| `build` | 构建 | `build: 升级 Vite 构建配置` |
| `ci` | CI 配置 | `ci: 补充后端 Pint 检查步骤` |
| `chore` | 杂项/工具 | `chore: 更新 Composer 依赖` |
| `revert` | 回滚 | `revert: 回滚 feat(user) 导入功能` |
| `wip` | 进行中 | `wip(user): 导入导出开发中` |
| `workflow` | 工作流 | `workflow: 调整分支保护规则` |
| `types` | 类型定义 | `types: 补充前端 API 类型声明` |
| `release` | 发版 | `release: v1.2.0` |
## Scope 范围
@@ -62,7 +75,7 @@ git commit -m "docs: 补充多数据库部署文档"
# -----------------------------------------------------------------------------
# 重构(refactor)
# -----------------------------------------------------------------------------
git commit -m "refactor(logic): 统一删除前校验逻辑"
git commit -m "refactor(service): 统一删除前校验逻辑"
# -----------------------------------------------------------------------------
# 性能优化(perf)
@@ -73,45 +86,60 @@ git commit -m "perf(dict): 增加请求级缓存减少重复查询"
## 注意事项
:::warning 禁止事项
- 不要提交调试代码(`console.log`、`dump`、`var_dump`)
- 不要提交敏感信息(密码、密钥、Token)
- 不要提交调试代码(`console.log`、`dd()`、`dump`、`var_dump`)
- 不要提交敏感信息(密码、密钥、Token、`.env`)
- 不要提交 IDE 配置文件(`.idea/`、`.vscode/`)
- 一个 commit 只做一件事
:::
## .gitignore
项目根目录 `.gitignore` 关键规则:
```gitignore
# =============================================================================
# .gitignore — Git 版本控制忽略规则
# .gitignore — Git 版本控制忽略规则(摘自项目根目录,含说明)
# =============================================================================
# 匹配的文件不会被 git track(不会提交到仓库)
# =============================================================================
# -----------------------------------------------------------------------------
# 运行时目录(ThinkPHP 缓存、日志、编译模板 — 自动生成,无需版本控制)
# -----------------------------------------------------------------------------
runtime/
vendor/
# -----------------------------------------------------------------------------
# 环境配置(包含数据库密码等敏感信息 — 绝不能提交)
# 环境配置与备份(包含数据库密码、JWT 密钥等敏感信息 — 绝不能提交)
# -----------------------------------------------------------------------------
.env
.env.backup
.env.production
# -----------------------------------------------------------------------------
# IDE 配置文件(每个开发者的 IDE 设置不同 — 不应互相影响)
# 运行时与依赖(自动生成/体积庞大,通过 composer install、npm install 重建)
# -----------------------------------------------------------------------------
.idea/
.vscode/
/vendor
/node_modules
/storage/*.key
/storage/pail
/public/build
/public/hot
# -----------------------------------------------------------------------------
# 临时上传文件(用户上传的临时文件 — 不属于代码)
# IDE 与系统文件(每个开发者的环境不同 — 不应互相影响)
# -----------------------------------------------------------------------------
uploads/temp/
/.idea
/.vscode
/.fleet
/.nova
/.zed
.DS_Store
Thumbs.db
# -----------------------------------------------------------------------------
# 前端依赖(node_modules 体积庞大 — 通过 pnpm install 重新安装即可)
# 测试与工具缓存
# -----------------------------------------------------------------------------
ui/node_modules/
*.log
/.phpunit.cache
.phpunit.result.cache
.phpactor.json
```
:::info 前端依赖
前端依赖忽略规则由 `ui/node_modules`(`.gitignore` 中 `/node_modules` 对应各前端包目录)覆盖,`pnpm-lock.yaml` **必须提交**(保证依赖版本一致)。
:::