Files
rxthinkcmf-wiki/RXThinkCMF_Laravel13_NaiveVue/zh/standards/git.md
T
2026-10-08 17:50:29 +08:00

146 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 12.3 Git 提交规范
:::tip 概述
统一的 Git 提交规范有助于代码审查、版本管理和自动化工具集成。前端工程提供了 commitlint 配置(`ui/commitlint.config.js`,依赖中含 husky / lint-staged),按其规范提交可通过自动化校验。
:::
## Commit Message 格式
```html
<type>(<scope>): <subject>
<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): 修复验证码过期后仍可使用的问题` |
| `perf` | 性能优化 | `perf(dict): 增加字典缓存减少数据库查询` |
| `style` | 代码格式(不影响功能) | `style: 统一代码缩进` |
| `docs` | 文档 | `docs: 更新 API 接口文档` |
| `test` | 测试 | `test: 添加用户模块单元测试` |
| `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 范围
| scope | 说明 |
|-------|------|
| `user` | 用户模块 |
| `role` | 角色模块 |
| `menu` | 菜单模块 |
| `dict` | 字典模块 |
| `job` | 定时任务 |
| `auth` | 认证授权 |
| `upload` | 文件上传 |
| `generator` | 代码生成器 |
| `config` | 配置 |
| `deploy` | 部署 |
## 示例
```bash
# -----------------------------------------------------------------------------
# 新功能(feat)
# -----------------------------------------------------------------------------
# -m → 指定提交信息(单行简短描述)
git commit -m "feat(article): 新增文章管理模块"
# -----------------------------------------------------------------------------
# 修复 Bug(fix)
# -----------------------------------------------------------------------------
git commit -m "fix(login): 修复密码错误时未记录登录日志的问题"
# -----------------------------------------------------------------------------
# 文档更新(docs)
# -----------------------------------------------------------------------------
git commit -m "docs: 补充多数据库部署文档"
# -----------------------------------------------------------------------------
# 重构(refactor)
# -----------------------------------------------------------------------------
git commit -m "refactor(service): 统一删除前校验逻辑"
# -----------------------------------------------------------------------------
# 性能优化(perf)
# -----------------------------------------------------------------------------
git commit -m "perf(dict): 增加请求级缓存减少重复查询"
```
## 注意事项
:::warning 禁止事项
- 不要提交调试代码(`console.log`、`dd()`、`dump`、`var_dump`)
- 不要提交敏感信息(密码、密钥、Token、`.env`)
- 不要提交 IDE 配置文件(`.idea/`、`.vscode/`)
- 一个 commit 只做一件事
:::
## .gitignore
项目根目录 `.gitignore` 关键规则:
```gitignore
# =============================================================================
# .gitignore — Git 版本控制忽略规则(摘自项目根目录,含说明)
# =============================================================================
# 匹配的文件不会被 git track(不会提交到仓库)
# =============================================================================
# -----------------------------------------------------------------------------
# 环境配置与备份(包含数据库密码、JWT 密钥等敏感信息 — 绝不能提交)
# -----------------------------------------------------------------------------
.env
.env.backup
.env.production
# -----------------------------------------------------------------------------
# 运行时与依赖(自动生成/体积庞大,通过 composer install、npm install 重建)
# -----------------------------------------------------------------------------
/vendor
/node_modules
/storage/*.key
/storage/pail
/public/build
/public/hot
# -----------------------------------------------------------------------------
# IDE 与系统文件(每个开发者的环境不同 — 不应互相影响)
# -----------------------------------------------------------------------------
/.idea
/.vscode
/.fleet
/.nova
/.zed
.DS_Store
Thumbs.db
# -----------------------------------------------------------------------------
# 测试与工具缓存
# -----------------------------------------------------------------------------
*.log
/.phpunit.cache
.phpunit.result.cache
.phpactor.json
```
:::info 前端依赖
前端依赖忽略规则由 `ui/node_modules`(`.gitignore` 中 `/node_modules` 对应各前端包目录)覆盖,`pnpm-lock.yaml` **必须提交**(保证依赖版本一致)。
:::