forked from linjing/standard
152 lines
4.6 KiB
Markdown
152 lines
4.6 KiB
Markdown
|
||
|
||
# Git分级与项目管理规范文档
|
||
|
||
## 一、Git分级体系
|
||
### 1. 个人仓库(Personal Repositories)
|
||
- **权限**:开发者私有,可设置公开/内部/私有
|
||
- **用途**:
|
||
- 个人代码片段
|
||
- 实验性项目
|
||
- 未公开的研究成果
|
||
- **管理策略**:
|
||
- 需关联公司邮箱
|
||
- 禁止存放敏感数据
|
||
- 每季度清理无效仓库
|
||
|
||
### 2. 团队仓库(Team Repositories)
|
||
- **权限**:团队成员可读写,外部人员只读
|
||
- **用途**:
|
||
- 部门级工具开发
|
||
- 共享研究成果
|
||
- 跨项目组件
|
||
- **管理策略**:
|
||
- 团队负责人审批加入
|
||
- 每周同步更新日志
|
||
- 需绑定Jira项目看板
|
||
|
||
### 3. 项目仓库(Project Repositories)
|
||
- **权限**:项目组成员按角色分配(开发/测试/运维)
|
||
- **用途**:
|
||
- 量化策略实盘系统
|
||
- 核心交易平台
|
||
- 数据处理流水线
|
||
- **管理策略**:
|
||
- 强制代码审查(2人+)
|
||
- 生产分支双因素认证
|
||
- 每日自动化测试报告
|
||
|
||
### 4. 组织仓库(Organization Repositories)
|
||
- **权限**:公司级管理员控制
|
||
- **用途**:
|
||
- 基础架构代码
|
||
- 合规性文档
|
||
- 公司级工具链
|
||
- **管理策略**:
|
||
- 提交需经过审计
|
||
- 所有分支加密存储
|
||
- 变更需提前3天报备
|
||
|
||
|
||
## 二、项目管理规范
|
||
### 1. 项目分类
|
||
| 类型 | 特点 | 分支策略 | 保护机制 |
|
||
|-------------|-------------------------------|-------------------|-----------------------|
|
||
| 核心项目 | 影响实盘交易 | Git Flow | 生产分支只读 |
|
||
| 实验性项目 | 策略验证阶段 | GitHub Flow | 每日自动销毁测试环境 |
|
||
| 工具类项目 | 通用组件开发 | Trunk-Based | 版本语义化控制 |
|
||
|
||
### 2. 分支命名规范
|
||
```bash
|
||
# 示例:
|
||
feature/20250307-strategy-improvement # 功能分支
|
||
hotfix/20250307-trading-bugfix # 紧急修复
|
||
release/v2.3.1 # 发布分支
|
||
```
|
||
|
||
### 3. 代码审查流程
|
||
1. 开发者提交Pull Request
|
||
2. 自动触发单元测试(覆盖率需>90%)
|
||
3. 技术负责人审核架构设计
|
||
4. 风险控制部门审查合规性
|
||
5. 合并后自动生成CHANGELOG
|
||
|
||
|
||
## 三、仓库管理细则
|
||
### 1. 仓库初始化模板
|
||
- 必须包含:
|
||
- LICENSE文件(MIT/公司专有)
|
||
- README.md(含架构图、部署说明)
|
||
- .gitignore(含Python/R/Java等配置)
|
||
- CI/CD配置文件(GitHub Actions示例)
|
||
|
||
### 2. 仓库维护周期
|
||
| 类型 | 维护频率 | 保留期限 |
|
||
|-------------|------------|------------|
|
||
| 活跃项目 | 每日备份 | 永久 |
|
||
| 归档项目 | 每周扫描 | 5年 |
|
||
| 废弃项目 | 立即冻结 | 1年 |
|
||
|
||
### 3. 权限回收机制
|
||
- 员工离职时:
|
||
1. 立即禁用仓库访问权限
|
||
2. 72小时内转移代码所有权
|
||
3. 30天内彻底删除个人贡献记录
|
||
|
||
|
||
## 四、组织管理架构
|
||
### 1. 角色矩阵
|
||
| 角色 | 权限范围 | 职责 |
|
||
|---------------|-------------------------|-------------------------------|
|
||
| 公司管理员 | 所有仓库读写+权限分配 | 制定全局策略 |
|
||
| 项目负责人 | 项目仓库完全控制 | 代码质量监管 |
|
||
| 安全审计员 | 只读+日志查询 | 监控异常操作 |
|
||
| 普通开发者 | 按项目授权 | 提交符合规范的代码 |
|
||
|
||
### 2. 协作流程
|
||
```mermaid
|
||
graph TD
|
||
A[开发者提交代码] --> B{自动化检查}
|
||
B -->|通过| C[代码审查]
|
||
B -->|失败| D[返回修改]
|
||
C --> E{风险评估}
|
||
E -->|通过| F[合并到主分支]
|
||
E -->|拒绝| D
|
||
F --> G[触发生产部署]
|
||
```
|
||
|
||
|
||
## 五、工具链集成方案
|
||
1. **CI/CD**:
|
||
- GitLab CI/CD用于量化策略回测
|
||
- Jenkins Pipeline管理交易系统部署
|
||
|
||
2. **文档协作**:
|
||
- Confluence关联仓库README
|
||
- MkDocs生成API文档
|
||
|
||
3. **监控系统**:
|
||
- Prometheus监控代码提交频率
|
||
- Grafana展示仓库健康度指标
|
||
|
||
|
||
## 六、最佳实践
|
||
1. 每周五进行代码质量抽查
|
||
2. 每月发布《仓库健康度报告》
|
||
3. 每季度组织Git安全培训
|
||
4. 每年更新《敏感代码扫描规则》
|
||
|
||
|
||
## 附录:示例配置
|
||
```yaml
|
||
# .github/workflows/security-check.yml
|
||
name: Security Scan
|
||
on: [push]
|
||
jobs:
|
||
detect-secrets:
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
- uses: actions/checkout@v4
|
||
- run: pip install detect-secrets
|
||
- run: detect-secrets scan --update .secrets.baseline
|
||
``` |