3.3 KiB
3.3 KiB
Git Workflow(分支模型与提交规范)
本仓库采用简化 Git Flow:main(生产)← dev(集成)← feature/*(功能)。
分支模型 Branch Model
| 分支 Branch | 用途 Purpose | 从哪拉出 From | 合入 To | 直接 push |
|---|---|---|---|---|
main |
生产 / 稳定,可发布 | — | — | ❌ 禁止(仅 PR) |
dev |
集成 / 开发主线 | main |
main |
❌ 禁止(仅 PR) |
feature/<name> |
单个功能 / 改动 | dev |
dev |
✅(推自己的 feature) |
hotfix/<name> |
线上紧急修复 | main |
main + dev |
❌(仅 PR) |
release/<version> |
(可选)发布候选 | dev |
main + dev |
❌(仅 PR) |
分支命名 Branch Naming
- 功能:
feature/<kebab-case>,如feature/architecture-scaffold - 修复:
fix/<kebab-case>或hotfix/<kebab-case> - 发布:
release/<semver>,如release/v1.0.0
提交规范 Commit Convention
遵循 Conventional Commits:<type>(<scope>): <subject>
type:feat/fix/docs/chore/refactor/test/build/perf/style/ciscope:可选,模块名(entry/uikit/common)subject:祈使句,首字母小写,结尾不加句号
示例:
feat(entry): 建立 MVVM+data 分层骨架
chore(build): 注册 common/uikit 模块
docs: 新增架构设计文档
开发流程 Development Workflow
新建功能 Feature
git checkout dev
git pull
git checkout -b feature/xxx
# 开发 + 提交(conventional commits)
git add -A
git commit -m "feat(entry): ..."
git push -u origin feature/xxx
然后在 Gitea 发起 PR:feature/xxx → dev,评审通过后合并(推荐 squash merge,保持 dev 历史线性干净)。
合并后删除已合入的 feature 分支:
git checkout dev
git pull
git branch -d feature/xxx
git push origin --delete feature/xxx
发布 Release
简单场景直接发 PR dev → main(用 merge commit 保留发布边界),合并后打 tag:
git checkout main
git pull
git tag v1.0.0
git push --tags
复杂场景可引入 release/<version> 分支隔离发布修复:
git checkout -b release/v1.0.0 dev
# 修复 release 上的问题后,分别合回 main 与 dev 并打 tag
紧急修复 Hotfix
git checkout main
git pull
git checkout -b hotfix/xxx
# 修复 + 提交
git push -u origin hotfix/xxx
# PR: hotfix/xxx → main;再 PR: hotfix/xxx → dev(同步回开发主线)
硬规则 Hard Rules
- 禁止直接 push 到
main或dev,一律走 PR(建议在 Gitea 对这两个分支开启保护)。 - PR 合入前过 lint + 相关测试,见
docs/testing.md的「改动后验证」。 - feature 合并后删除分支,保持分支列表干净。
- 提交信息必须走 Conventional Commits,不合规的提交在 PR 中 squash 掉。
- 签名信息永不入库——
build-profile.json5的signingConfigs必须保持空[],已由 pre-commit 钩子兜底,见docs/build-deploy.md的「签名管理」。
仓库设置 Repo Settings(一次性)
- 默认分支设为
main(Gitea → Settings → Branches → Default Branch)。 - 建议对
main/dev开启分支保护(禁止直接 push,仅允许 PR 合并)。