1
0
forked from linjing/standard
standard/git_management_spec.md
2025-03-07 09:45:22 +08:00

4.6 KiB
Raw Permalink Blame History

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. 分支命名规范

# 示例:
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. 协作流程

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. 每年更新《敏感代码扫描规则》

附录:示例配置

# .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