# Edu Git 工作流规范 > 版本:1.2 > 日期:2026-07-10 > 状态:基线发布(v1.2:移除分支/PR 流程,改为直接 push main) > 适用范围:Edu 多语言 monorepo(pnpm workspace + go.work + pyproject.toml) > 关联文档: > > - [项目规则](../../.trae/rules/project_rules.md) > - [编码规范](./coding-standards.md) > - [迁移指南](../../MIGRATION_GUIDE.md) > - [架构总览](../architecture/001_architecture_overview.md) --- ## 目录 1. [主干开发(直接 push main)](#一主干开发直接-push-main) 2. [Conventional Commits 规范](#二conventional-commits-规范) 3. [commitlint + husky 配置](#三commitlint--husky-配置) 4. [事后 Code Review](#四事后-code-review) 5. [文档同步规则](#五文档同步规则) 6. [多语言 monorepo 提交规则](#六多语言-monorepo-提交规则) 7. [版本管理](#七版本管理) 8. [紧急回滚](#八紧急回滚) 9. [附录:CICD 与 Edu Git 工作流差异](#九附录cicd-与-edu-git-工作流差异) --- ## 一、主干开发(直接 push main) ### 1.1 模式 本项目采用**主干开发**模式,所有变更**直接提交到 `main` 分支**。 > 因 Gitea 问题,**不再使用特性分支、发布分支、hotfix 分支,不再使用 PR 流程**。所有变更通过 `git push origin main` 提交。 **核心原则**: - `main` 分支始终保持可发布状态 - 所有变更直接 push main,**禁止 `git checkout -b` 创建任何分支** - push 前本地通过 lint + typecheck + test + build(见 §3.4 pre-push hook) - push 前 `git pull --rebase origin main` 同步最新 - 通过特性开关(Feature Flag)控制未完成功能的暴露 - 代码审查改为事后追溯(见 §4),不在 push 前阻塞 ### 1.2 提交流程 ```bash # 1. 同步最新 main git pull --rebase origin main # 2. 本地校验(强制) pnpm run lint # TS 服务 pnpm run typecheck # TS 服务 cd services/api-gateway && go vet ./... && go build ./... # Go 服务 ruff check src/ # Python 服务 # 3. 提交(遵循 Conventional Commits,见 §2) git add git commit -m "feat(): " # 4. push 前再次同步(避免冲突) git pull --rebase origin main # 5. 直接 push main git push origin main ``` ### 1.3 冲突处理 - **push 被拒绝**(远端有新提交):`git pull --rebase origin main` → 解决冲突 → `git add` → `git rebase --continue` → `git push origin main` - **架构冲突**:由协调 AI 仲裁,通过 `git revert` + 新 commit 修正 - **禁止 `git push --force` 到 main**:仅协调 AI 在事故时可 `git push --force-with-lease origin main` ### 1.4 main 分支保护 - 禁止 force push(仅协调 AI 在事故时操作) - pre-commit / commit-msg / pre-push hook 强制校验(见 §3.4) - 不再要求 PR review,代码质量由本地校验 + 事后 review(§4)+ CI(project_rules §15)保证 --- ## 二、Conventional Commits 规范 ### 2.1 提交信息格式 所有提交信息必须遵循 [Conventional Commits 1.0.0](https://www.conventionalcommits.org/zh-hans/): ``` ():