分支策略用于隔离不同阶段的代码和配置变更。New IDE 中,团队可以通过 Git 分支管理开发、测试和生产配置,再结合 Project、项目参数、资源绑定和发布流程控制不同环境的运行行为。
分支策略不是唯一标准。团队可以根据规模、发布频率和治理要求选择轻量或严格的方式。关键原则是:生产发布来源应清晰、可追踪、可审查。
分支 | 用途 | 适合内容 |
|---|---|---|
feature/* | 单个需求或问题修复。 | 开发者日常修改、试验和小范围验证。 |
develop 或 dev | 集成开发分支。 | 多人变更合并、开发环境调试。 |
staging 或 test | 测试或预发分支。 | 接近生产配置的联调和验收。 |
main 或 prod | 生产发布来源。 | 已审查、可发布、可追踪的生产配置。 |
较小团队也可以采用简化模型,例如 feature/* -> main,但仍建议通过 Pull Request、Diff 或发布复查确认生产变更。
Git 分支可以承载不同阶段的代码和配置,但环境差异不应全部写死在分支中。建议将环境差异拆成三类管理:
差异类型 | 推荐管理方式 |
|---|---|
代码逻辑差异 | 通过 Git 分支和代码审查管理。 |
参数差异 | 通过项目参数、Pipeline 参数或环境参数管理。 |
资源差异 | 通过 Project 资源绑定、数据源配置、Run As 和计算资源管理。 |
例如,dev 和 prod 可以使用同一份 Pipeline 配置结构,但通过不同项目参数指定数据库名、对象存储路径、资源组或环境标识。
一个常见路径如下:
feature/order-quality-check -> develop -> staging -> main -> New IDE 发布为 Online Pipeline
每一阶段建议完成不同检查:
阶段 | 建议检查 |
|---|---|
feature | 代码可运行,Pipeline 配置校验通过,提交说明清晰。 |
develop | 多人变更合并后无冲突,主要 Notebook、SQL 和 Pipeline 可调试。 |
staging | 使用接近生产的参数、资源和数据范围验证。 |
main/prod | 发布前查看 Diff,确认责任人、Run As、资源和调度配置。 |
避免在代码中硬编码环境信息。建议使用参数或资源配置表达差异。
配置 | 示例 | 说明 |
|---|---|---|
项目参数 | project.db_name、project.root_path | 不同 Project 或环境可以配置不同值。 |
Pipeline 参数 | biz_date、env、region | 运行时传入或覆盖。 |
Run As | dev_runner、prod_runner | 不同环境使用不同运行身份。 |
资源组 | dev_compute、prod_compute | 不同环境使用不同计算资源。 |
数据源 | dev_warehouse、prod_warehouse | 通过 Project 数据源管理控制访问边界。 |
这样可以减少分支之间的重复配置,也能降低误把开发环境路径发布到生产的风险。
类型 | 命名示例 |
|---|---|
功能开发 | feature/order-quality-check |
问题修复 | fix/order-biz-date-param |
紧急修复 | hotfix/prod-order-null-value |
集成分支 | develop |
生产分支 | main 或 prod |
分支名称应能表达业务意图,避免只有个人姓名或无意义编号。
从生产分支发起发布前,建议确认:
生产故障需要紧急修复时,可以使用 hotfix/* 分支。修复后建议:
风险 | 说明 | 建议 |
|---|---|---|
直接在生产分支开发 | 容易把未验证变更带入发布范围。 | 使用功能分支开发,审查后合入生产分支。 |
环境信息硬编码 | 代码和配置在不同环境间难复用。 | 使用项目参数、Pipeline 参数和资源绑定。 |
Push 后误以为已上线 | Git 同步不等于 New IDE 发布。 | 发布前执行校验和 Diff 确认。 |
合并冲突处理不充分 | 可能破坏 Pipeline DAG 或参数引用。 | 合并后重新校验并运行关键链路。 |
生产分支缺少保护 | 重要配置可能被绕过审查修改。 | 配置仓库分支保护和团队审查流程。 |