Gitflow工作流程规范建议

66 阅读1分钟

项目人员(角色)

  • Tester
  • Developer
  • Maintainer

The Main branches 主分支(与项目共存,整个生命周期)

  • master
  • develop

Supporting branches 支持分支(阶段性生命周期)

  • Feature branches

    一个开发周期得功能模块,命名规则 feature/-

  • Release branches

    用于发布集成测试,命名规则 release/-

  • Hotfix branches

    用于处理bug,命名规则 hotfix/-

Supporting Branch life cycle 支持分支得生命周期

  • feature branch

    1. Creating a feature branch for feature/order

      # 操作角色为Developer, Maintainer
      # 基于develop分支创建功能为订单模块得功能分支
      $ git checkout -b feature/JIRA1-1.0.0 develop
      
    2. Finish a feature branch for feature/JIRA1-1.0.0

      # 操作角色为Maintainer
      $ git checkout develop
      $ git merge --no-ff feature/JIRA1-1.0.0
      $ git branch -d feature/JIRA1-1.0.0
      $ git push origin develop
      

      此操作由项目所属得Maintainer(Teamleader)执行,我们会采用gitlab上merge request得方式执行达到以上效果

  • release branch

    1. Creating a release branch for release/1.0.0-20221028

      # 操作角色为Maintainer
      # 基于develop分支创建发布分支release/1.0.0-20220101
      $ git checkout -b release/1.0.0-20221028 develop
      
    2. Finish release branch for release/1.0.0-20221028

      # 操作角色为Maintainer
      $ git checkout master
      $ git merge --no-ff release/1.0.0-20221028
      $ git tag -a 1.2
      
      $ git checkout develop
      $ git merge --no-ff release/1.0.0-20221028
      
      # 此步骤可选
      $ git branch -d release/1.0.0-20221028
      

      此操作由项目所属Maintainer(Teamleader)执行,我们会采用gitlab上merge request得方式执行达到以上效果

  • hotfix branch

    1. Creating the hotfix branch for hotfix/JIRA3-1.0.0

      # 假定当前得master发布得版本是1.0
      git checkout -b hotfix/JIRA3-1.0.0 master
      
    2. Finish hotfix branch for hotfix/JIRA3-1.0.0

      # 操作校色为Maintainer
      $ git checkout master
      $ git merge --no-ff hotfix/JIRA3-1.0.0
      # 假定线上版本对应的tag为1.0
      $ git tag -a 1.0.1
      
      # 注意: 当不存在未发布的release分支时,hotfix merge 到 develop, 不用merge 到 release
      $ git checkout develop
      $ git merge --no-ff hotfix/JIRA3-1.0.0
      
      # 注意: 当存在未发布的release分支时,hotfix merge 到 对应的release , 不用merge 到 developer
      $ git checkout release/1.0.0-20221028
      $ git merge --no-ff hotfix/JIRA3-1.0.0
      
      # 操作校色为Maintainer, developer
      $ git branch -d hotfix/JIRA3-1.0.0
      

      此操作由项目所属Maintainer(Teamleader)执行,我们会采用gitlab上merge request得方式执行达到以上效果