GitFlow工作流程

150 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第5天,点击查看活动详情 >>

GitFlow工作流

master

  • 生产主分支,发布到生产环境使用这个分支,由hotfix或者release分支合并过来,不直接提交代码

  • 统一在master上打正式线tag,eg:v1.0.0 / v2.0.0

develop

  • 主开发分支 , 基于master分支克隆,由feature分支合并过来,一般不直接提交代码
  • 通常来说版本要快于master

features

  • 功能开发分支 , 基于develop分支克隆 , 主要用于新需求新功能的开发,同时存在多个
  • 不断的integrate(获取其他人的最新代码) , 等待相同版本的功能都开发完毕后,统一Finish ,finish后会合并到develop, 启动release
  • 分支命名eg:v1.1.0-login / v1.1.0-share

releases

  • 预发布分支 , 基于feature分支合并到develop之后 , 从develop分支克隆
  • 统一在releases上打测试线tag,eg:v1.1.0-alpha1 / v2.0.0-alpha1
  • 测试完成后Finish releases合并到master和develop,并在master打上正式tag。

hotfixs

  • 补丁分支 , 基于master分支克隆 , 主要用于对线上的版本进行BUG修复,完成后合并到master分支和develop分支
  • finish 后合并到master和develop

smart工作区域

  • Repositories:仓库,是指本地仓库的目录
  • graph:图形,用于追溯代码故事
  • Branches:显示的是本地库Local Branches 远程库origin和库中打过标签的tags.
  • commit:选中代码提交信息
  • Files:选中代码修改的文件
  • change XXX:修改前后文件信息对比

Banches区域

local branchorigintagsstashesRecyclable Commits
本地分支远程分支所有tag保存stash过的记录,右键点击Apply Stash -->apply,即可恢复可回收的提交

Top区域

pullsyncpushstageindex editorupstagediscardsave stashapply stashblameinvestigategit-flowmergerebase
拉取远程仓库到本地先提交后拉取 / 先拉取后提交提交本地代码到远程仓库添加当前目录下的所有文件到暂存区相当于git add .放弃暂存区文件放弃检测到本地更改的操作,还原修改暂存(Index)或HEAD状态保存本地缓存展示保存到本地的缓存追溯一个指定文件的历史修改记录工作流合并分支将提交从一个分支应用到另一个分支

准备工作

  • clone仓库地址
  • smartGit --> Git-Flow --> Configure --> Change Configuration --> Full & Reset to Defaults & OK --> master push & develop push

开发流程

  • 完成准备工作

  • Git-flow --> strat feature --> start

  • 在上一步的feature上完成所有当前版本开发工作,然后finish feature

  • 更新测试线:Git-flow --> strat release --> start,所有测试的tag都在这个release上添加

    • 在releases上获取最新develop的代码:release --> 切换到当前release --> 选中master --> 点击merge --> create Merge-Commit --> pull当前release
  • 更新线上:在当前release上右键点击finish release并合并到develop和master上

  • 在master上打正式线的tag

  • 线上的小改动

    • 在master上新建一个hotfixs进行修改
    • 再此hotfixs上打测试线tag
    • 直到可以上线后,finish hotfixs并合并到master和develop上,并在master上打正式线tag
  • 新的版本

    • 新开一个feature,重复开发流程
    • 如果仓库内有需要同时在线上的项目则需要修改build.json
  • 开发新版本时需要修改测试线版本

    • 按照上述流程,正在开发的新版本在一个feature上,测试线在releases上
    • 只需要新开一个feature,完成后finish feature,并在releases上merge develop上最新的代码并打测试tag
    • 在新版本的feature上integrate develop上最新的代码即可
  • 开发新版本时需要修改正式线版本

    • 在需要修改的版本上开一个hotfixs,详见线上小改动
    • 如果在新开发版本需要合并修改的代码
      • feature --> 右键integrate
      • release --> 切换到当前release --> 选中master --> 点击merge --> create Merge-Commit --> pull当前release