Skip to content

GitFlow

GitFlow 概念

是一种代码开发合并管理流程的思维模式或者是管理方法。

Gitflow 越来越受欢迎,有利于基于主干的工作流,现在被认为是现代持续软件开发和 DevOps实践的最佳实践。

一、GitFlow 特点

  • 代码共享
  • 不同环境下代码互不干扰
  • 管理好代码与环境的一致性
  • 优点
    • 适应场景多
    • 不影响开发进度
    • 分支使用相对有条理
    • 确保线上的版本稳定
  • 缺点
    • 因为分支太多,所以会出现git log混乱的局面
    • 同时维护 Main 和 Develop 两个分支很多时候是没必要的,因为在很多场景下 Main 中的内容和 Develop 中的内容是差不多的

二、GitFlow 中分支的定义

  1. Main 分支: 稳定版本代码分支。
    • 用作发布环境,上面的每次提交都是可以发布的。
  2. Feature 分支: 功能分支。
    • 用于开发功能(需求),用于开发环境
  3. Develop 分支: 开发分支。
    • 一旦 Feature 分支内功能开发完成就将 Feature 中的代码合并到 Develop 分支中,合并完成后,删除该功能分支。这个分支对应的是集成测试环境。
  4. Release 分支:预发分支,做发布前的准备工作,对应的是预发环境。
    • 这个分支可以确保们开发继续向前,不会因为要发布不而被停滞住。
    • 一旦 Release 分支达到了可发布的状态,我们需要把 Release 分支同时向 Main,Develop 分支上合并,保持代码的一致性,然后把 Release 分支删除。
  5. Hotfix 分支: 线上bug修缮用的分支。
    • 每次修改线上代码的bug时都要用hotfix来维护,完成后向Develop和Main同时合并。完成后删除分支。

三、Gitflow的整体流程

html
1. Develop from Main:    开发分支 from 主干

2. Release from Develop: 预发分支 from 开发分支

3. Feature from Develop: 功能分支 from 开发分支

<!-- 功能开发完毕后 合并到 开发分支 -->
4. 当 Feature 完成时,它被合并到 Develop 分支中;

<!-- 预生产OK后,部署到 开发分支和主干 -->
5. 当 Release 完成后,它被合并到 Develop 和 Main; 

<!-- 有 bug 需要修复时 -->
6. 如果 Main 检测到问题,Hotfix 则创建一个分支 Main

7. 一旦 Hotfix 完成,它就会合并到 Develop 和 Main

An image

参考:
Gitflow Workflow
gitflow 是什么,有哪些优缺点?