Git Flow

flowchart TD
    A([开始]) --> A1[主分支 main];
    A([开始]) --> A2[开发分支 develop];
    Z([结束])

    A2 --> A21[新增功能需求: 创建功能分支 feature-XXX];
    A21 --> A22{新开发功能是否完成};
    A22 --> |是| A221[提交代码执行 CI 阶段];
    A221 --> A2211{Runner: 自动化构建与测试案例是否通过};
    A2211 --> |是| A22111[从 develop 合并代码并删除 feature-XXX 分支];
    A2211 --> |否| A222;
    A22 --> |否| A222[继续开发自测完成后提交代码];
    A222 --> A221;
    A22111 --> Z;

    A2 --> A31[累计功能发布: 创建发布分支 release-X.Y];
    A31 --> A311{是否已存在 release-X.Y 分支};
    A311 --> |是| A3111[从 develop 合并最新代码];
    A311 --> |否| A3112[从 develop 创建最新分支];
    A3111 --> A3113[监听合并或创建事件 触发CICD阶段];
    A3112 --> A3113;
    A3113 --> A31131{Runner: 自动化构建与测试案例是否通过};
    A31131 --> |是| A311311[合并至 develop 分支];
    A311311 --> A3113112[合并至 main 分支];
    A31131 --> |否| A311312[在 release-X.Y 分支修复异常提交代码];
    A311312 --> A3113;
    A3113112 --> Z;

    A1 --> A12[来自 release-X.Y 或 hotfix-XXX 的合并请求];
    A12 --> A121{管理员确认是否允许};
    A121 --> |是| A1211[确认合并];
    A121 --> |否| A1212[拒绝合并];
    A1212 --> A311312;
    A1211 --> A13[提交标签 git tag vX.Y.Z];
    A13 --> A131[使用 release-X.Y 或 hotfix-XXX 阶段构建的镜像进行部署];
    A131 --> A1311{Runner: 自动化部署是否通过};
    A1311 --> |是| Z;
    A1311 --> |否| A311312;

    A1 --> A11[线上环境发现BUG];
    A11 --> A111{确认为BUG是否需修复};
    A111 --> |是| A1111[从 main 仓库创建 hotfix-XXX 分支];
    A111 --> |否| Z;
    A1111 --> A112[仅修复BUG代码不涉及任何功能新增];
    A112 --> A1121[提交代码在 hotfix-XXX 分支];
    A1121 --> A11211{Runner: 自动化构建与测试案例是否通过};
    A11211 --> |是| A112111[构建提交容器镜像];
    A11211 --> |否| A1121;
    A112111 --> A11212[合并至 develop 与 main 分支];
    A11212 --> A11213[删除 hotfix-XXX 分支];
    A11213 --> A12;

最后修改 May 15, 2025: chore: update grpc docs (0d7f484)