feat: add China Telecom R&D project template
This commit is contained in:
@@ -0,0 +1,108 @@
|
||||
# 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、关联任务
|
||||
Reference in New Issue
Block a user