commit 46b8b97f14e5ca70f7e2a2c753915e705cd9907c Author: linjing Date: Fri Mar 7 09:45:22 2025 +0800 init diff --git a/git_management_spec.md b/git_management_spec.md new file mode 100644 index 0000000..76ced8d --- /dev/null +++ b/git_management_spec.md @@ -0,0 +1,152 @@ + + +# 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 +``` \ No newline at end of file diff --git a/git分级与管理规范1.md b/git分级与管理规范1.md new file mode 100644 index 0000000..c132ded --- /dev/null +++ b/git分级与管理规范1.md @@ -0,0 +1,139 @@ +# Git 分级与项目、库、组织管理文档 + +## 1. 引言 + +### 1.1 目的 +本文档旨在为公司提供一套基于 Git 的分级管理、项目、库和组织管理的规范与最佳实践,以确保代码版本控制的高效性、安全性和可维护性。 + +### 1.2 适用范围 +本规范适用于公司内部所有使用 Git 进行版本控制的项目、库和组织管理。 + +## 2. Git 分级管理 + +### 2.1 分级结构 +根据项目的敏感性和重要性,将 Git 仓库分为以下三个级别: + +1. **核心级(Core Level)**: + - 包含公司核心策略、算法和高敏感度代码。 + - 访问权限严格控制,仅限于核心开发团队和高层管理人员。 + - 仓库命名规范:`core-` + +2. **项目级(Project Level)**: + - 包含具体项目的代码和相关资源。 + - 访问权限根据项目组成员分配。 + - 仓库命名规范:`project-` + +3. **工具级(Tool Level)**: + - 包含公司内部工具、库和共享代码。 + - 访问权限较为宽松,适用于所有开发人员。 + - 仓库命名规范:`tool-` + +### 2.2 权限管理 +- **核心级**:仅限核心团队成员和授权管理人员访问。 +- **项目级**:项目组成员和相关管理人员访问。 +- **工具级**:所有开发人员均可访问,部分敏感工具库需额外审批。 + +## 3. 项目管理 + +### 3.1 项目创建 +1. **项目申请**:项目经理提交项目申请,包括项目名称、描述、预期目标和团队成员。 +2. **审批流程**:由技术总监和相关部门审批。 +3. **仓库创建**:审批通过后,由 Git 管理员创建项目仓库,并设置相应权限。 + +### 3.2 项目开发流程 +1. **分支策略**: + - `main` 分支:稳定版本,仅允许通过 Pull Request (PR) 合并。 + - `develop` 分支:开发版本,用于日常开发。 + - `feature/` 分支:功能开发分支,从 `develop` 分支创建,开发完成后合并回 `develop`。 + - `hotfix/` 分支:紧急修复分支,从 `main` 分支创建,修复完成后合并回 `main` 和 `develop`。 + +2. **代码审查**: + - 所有合并到 `main` 和 `develop` 分支的代码必须经过至少两名开发人员的代码审查。 + - 使用 PR 进行代码审查,确保代码质量和一致性。 + +3. **版本发布**: + - 每次发布新版本时,从 `main` 分支创建 `release/` 分支,进行最终测试和修复。 + - 发布完成后,合并 `release/` 分支回 `main` 并打上版本标签。 + +## 4. 库管理 + +### 4.1 内部库 +1. **库分类**: + - **核心库**:包含公司核心算法和策略,访问权限严格控制。 + - **工具库**:包含常用工具函数和共享代码,访问权限较为宽松。 + +2. **库版本管理**: + - 使用语义化版本控制(Semantic Versioning)。 + - 每次发布新版本时,打上版本标签并更新版本号。 + +3. **库依赖管理**: + - 使用 `requirements.txt` 或 `Pipfile` 管理 Python 库依赖。 + - 使用 `package.json` 管理 JavaScript 库依赖。 + +### 4.2 外部库 +1. **外部库引入**: + - 引入外部库需经过技术总监审批。 + - 确保外部库的安全性和稳定性。 + +2. **外部库更新**: + - 定期检查外部库的更新,确保使用最新稳定版本。 + - 更新外部库时,需进行充分测试,确保兼容性。 + +## 5. 组织管理 + +### 5.1 组织结构 +1. **团队划分**: + - **核心团队**:负责核心级项目的开发和维护。 + - **项目团队**:负责具体项目的开发和维护。 + - **工具团队**:负责内部工具和库的开发和维护。 + +2. **权限管理**: + - 使用 Git 提供的组织权限管理功能,确保不同团队和成员的访问权限合理分配。 + - 定期审查权限设置,确保安全性。 + +### 5.2 组织协作 +1. **沟通机制**: + - 使用 Slack 或 Microsoft Teams 进行日常沟通。 + - 定期召开项目会议,确保项目进度和问题及时解决。 + +2. **文档管理**: + - 使用 Confluence 或 Wiki 进行文档管理,确保项目文档的完整性和可访问性。 + - 每个项目必须包含 README 文件,详细描述项目背景、开发流程和使用说明。 + +## 6. 安全与备份 + +### 6.1 安全策略 +1. **访问控制**: + - 使用 SSH 密钥进行 Git 访问,确保安全性。 + - 定期更换 SSH 密钥,防止密钥泄露。 + +2. **代码加密**: + - 对核心级代码进行加密存储,确保即使仓库泄露,代码也无法直接使用。 + +### 6.2 备份策略 +1. **定期备份**: + - 每周对核心级和项目级仓库进行全量备份。 + - 使用异地备份,确保数据安全。 + +2. **灾难恢复**: + - 制定详细的灾难恢复计划,确保在数据丢失或系统故障时能够快速恢复。 + +## 7. 总结 +本规范为公司提供了一套完整的 Git 分级管理、项目、库和组织管理的框架。通过严格执行本规范,公司可以确保代码版本控制的高效性、安全性和可维护性,从而提升整体开发效率和项目质量。 + +--- + +**版本历史**: +- v1.0.0 - 初始版本 +- v1.1.0 - 更新权限管理和安全策略 + +**审批记录**: +- 技术总监:张三 +- 项目经理:李四 +- Git 管理员:王五 + +**生效日期**:2023年10月1日 + +--- + +**注意**:本文档为公司内部使用,未经授权不得外传。 \ No newline at end of file