Git 提交与代码审查
本篇规范 Git 提交信息格式和 PR 提交前的自查清单,确保代码质量可控。
Commit Message 规范
格式:<type>(<scope>): <subject>
Type
| Type | 说明 | 示例 |
|---|---|---|
feat | 新功能 | feat(user): 新增用户头像上传 |
fix | 修复 Bug | fix(auth): 修复 Token 过期不跳转登录 |
docs | 文档变更 | docs(api): 更新接口文档 |
refactor | 重构 | refactor(service): 重构用户服务 |
perf | 性能优化 | perf(query): 优化分页查询性能 |
style | 格式调整 | style(eslint): 修复代码格式 |
test | 测试相关 | test(user): 新增用户服务测试 |
chore | 构建/工具 | chore(deps): 升级依赖版本 |
规则
- subject 不超过 50 字符
- subject 使用动词开头(新增、修复、更新)
- scope 为可选,表示影响的模块
- 一个 commit 只做一件事
bash
# 正确
git commit -m "feat(order): 新增订单导出功能"
# 禁止
git commit -m "update"
git commit -m "fix bug and add feature and refactor"PR 提交前自查清单
后端
| 检查项 | 命令 |
|---|---|
| 编译通过 | cd forge-server && mvn clean compile |
| 单元测试 | mvn test |
| 全量构建 | mvn clean install -DskipTests |
前端
| 检查项 | 命令 |
|---|---|
| Lint 通过 | cd forge-admin-ui && pnpm lint:fix |
| 构建通过 | pnpm build |
代码审查清单
| 维度 | 检查内容 |
|---|---|
| 分层 | Controller 不含业务逻辑,Service 不写 SQL |
| SQL | XML 中使用 #{},禁止 ${} 拼接 |
| 租户 | 内置数据 tenant_id = 1,不写 0 |
| 逻辑删除 | XML 查询显式过滤 del_flag = 0 |
| 安全 | 不打印敏感信息,密码 BCrypt 加密 |
| 字典 | 使用 DictSelect/DictTag,不硬编码 options |
| 循环依赖 | Service 间不互相注入 |
| Flyway | 脚本可重复执行,NOT EXISTS 保护 |
安全红线自查
- [ ] 没有硬编码密钥、密码、AK/SK
- [ ] 日志中没有手机号、身份证、银行卡
- [ ] API Key/Secret 返回前端已脱敏
- [ ] 涉及资金/权限变更已在 Spec 中标注
分支管理
| 分支 | 用途 |
|---|---|
main | 生产分支,保护分支 |
dev | 开发分支 |
feature/* | 功能分支 |
fix/* | 修复分支 |
bash
# 功能开发流程
git checkout dev
git checkout -b feature/order-export
# 开发完成
git add .
git commit -m "feat(order): 新增订单导出功能"
git push origin feature/order-export
# 创建 PR → dev