Git Flow 分支管理

356 阅读2分钟

1. 分支管理环境分类:

  • 生产环境(主分支)
  • 预生产环境(发布分支)
  • 测试环境(开发分支)

2. 开发分支分类:

  • feature(功能分支):
    • 用于开发一个新功能
    • 完成新功能开发后合并 develop 分支
  • develop (开发分支 - 对应测试环境):
    • 包含向 release 分支发布的代码
    • 主要接收来自 feature 分支的合并
  • release (发布分支 - 对应预生产环境):
    • 基于 develop 分支
    • 对 release 分支进行新功能(可能包含多个新功能,建议同时测试)的进一步测试。
    • 对 release 分支测试到的 BUG 进行修改完成后,根据需求合并到 develop 分支和 master 分支
  • master (主分支 - 对应生产环境):
    • 包含最近发布的 release 分支代码
    • 仅接受其他分支合并,不接受直接对此分支修改
    • 每经历一个大的版本改动时,master 分支需要对相应的版本打上版本标签
  • hotfix(补丁分支 - 修复生产环境产生 BUG 时使用):
    • 基于 master 分支
    • 产生 BUG 时基于 master 分支创建 hotfix 分支。完成 BUG 修复后需要将 hotfix 分支修改合并到 master 分支和 develop 分支

3. 开发分支工作流程图解:

4. 常用命令汇总:

  1. 初始化:根据提示键入分支名 默认键入提示分支
git flow init
  1. 开发新功能:根据实际功能自定义 NAME 名称(新开发的功能基于 develop 分支)
git flow feature start NAME
  1. 完成新功能:会自动合并到develop 并删除当前 feature 分支
git flow feature finish NAME
  1. 准备 release 版本:创建一个可发布的版本( 基于 develop 分支进行创建 )
git flow release start VERSON
  1. 推送 release 版本:允许其他用户向此分支提交 ( 若自己单独负责一个模块, 可省略此步骤 )
git flow release publish VERSON
  1. 完成 release 版本:
git flow release finish VERSON

完成 release 的过程:合并 release 分支到 master 分支,用 release 分支名打 Tag,合并 release 分支到 develop 分支,移除 release 分支

注:键入完成命令后需要操作插入备注以及退出操作( 流程如下: 按 ‘i’ 键插入备注 ,一般会以版本号做为备注 ;按 ’Esc’ 键保存并退出备注;按 ’:’ 退出;输入 ’wq’;按回车键;等待工具自动打 Tag

  1. 推送 Tag 到远端
git push origin VERSON
  1. 推送 develop 分支
git checkout develop
git push
  1. 推送 master 分支
git checkout master
git push
  1. 线上 bug 紧急修复
git flow hotfix start VERSON
  1. 完成 bug 紧急修复:流程参考序号 6 ,完成 release 版本过程
git flow hotfix finish VERSON