Files
telecom-rd-project-template/.agents/references/quick-guides/05-code-management.md
T
2026-07-28 22:30:20 +08:00

109 lines
3.6 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.
# 05-代码管理规范
## 1. 代码仓库设置
### 管理工具
- **【强制 C1】** 必须使用 Git 管理代码
### 命名规范
- **【强制 C1】** 名称仅使用英文字母、数字、中划线(`-`);首字符仅为字母
- **【强制】** 禁止使用下划线 `_` 和特殊字符
- **【强制 C1】** 项目内全部仓库命名规则必须一致(全驼峰/全大写/全小写选一种)
### 必要文件
- **【强制 C1】** 每个项目必须有 `README.md`(包含工程介绍、结构说明、文档地址)
- **【强制 C1】** 除文档仓库外,必须有 `.gitignore`
### 仓库划分
- **【强制 C1】** 核心代码和非核心代码分库管理
- **【强制 C1】** 每个仓库仅使用一种技术栈
- **【推荐 C0】** 每个仓库不超过 5 个微服务
### 仓库大小
- **【强制 C1】** 每个仓库不超过 1GB
### 权限设置
- **【强制 C1】** 遵循权限最小化原则
- **【强制 C1】** 仅项目负责人/管理员可创建仓库
- **【强制 C1】** 离职/离开团队必须收回权限
- **【强制 C1】** 仓库管理员不超过 3 人
- **【强制 C1】** 禁止外协开发人员设为仓库管理员
- **【推荐 C0】** 严格控制 master/develop 分支写权限
---
## 2. 分支设置
### 必要分支
- **【强制 C1】** 必须有主干分支(master
### Git Flow 工作流(推荐 C0
| 分支类型 | 名称格式 | 说明 |
|----------|----------|------|
| 主干分支 | `master` | 对外稳定发布版本 |
| 开发分支 | `develop` | 包含全部最新特性 |
| 紧急修复 | `hotfix-*` | 以 master TAG 为基础修复 |
| 集成测试 | `release-*` | 以 develop 为基础,验收后合入 master |
| 功能分支 | `feature-*` | 以 develop 为基础,完成后删除 |
### 代码评审
- **【强制 C3】** 所有提交必须经过代码评审
- **两种模式**:单分支 code review 或多分支 merge request
---
## 3. 开发人员操作规范
### 用户信息设置
- **【强制 C1】** 须与远端仓库账号、邮箱一致
- "【强制 C1】** 密码不少于 8 位,包含数字、大小写字母及特殊符号
### Commit 规范
- **【强制 C1】** 保持清晰的 commit 历史
- **【强制 C1】** 推送前合并精简 commit(一个任务不超过 5 个 commit)
### Commit Message 格式(C3
```
type(scope): subject
%workItemId
```
| type | 含义 |
|------|------|
| `feat` | 新功能 |
| `fix` | 修复 bug |
| `docs` | 文档变更 |
| `style` | 代码格式 |
| `refactor` | 重构 |
| `perf` | 性能优化 |
| `test` | 增加测试 |
| `build` | 构建工具变更 |
| `revert` | 撤销提交 |
| `chore` | 辅助工具变动 |
示例:`%1011 fix(core): set a to b`
### 代码文件约束(C0
- **【强制】** 不允许提交含数据库账号、密码等敏感信息的文件
- **【强制】** 不允许提交与项目无关的二进制文件
- **【强制】** 单个文件不超过 10MB
- **【强制】** 第三方依赖包必须引用制品库,不得直接放入仓库
- **【强制】** 不允许提交 pdf/doc/ppt/xls/压缩包/音视频等文件
---
## 4. 代码版本管理
### 版本号
- **【强制 C1】** 发布版本必须打 tag
- **【强制 C2】** 版本号格式:`X.Y.Z`(主版本.次版本.修订号)
- 主版本号:不兼容的 API 修改
- 次版本号:向下兼容的功能新增
- 修订号:向下兼容的问题修正
- **【强制 C1】** 制品版本号与代码版本号一致
### 版本信息
- **【强制 C3】** Tag Message 记录版本日期、说明
- **【强制 C3】** Release Notes 记录 feature、fixed、关联任务