Gitflow工作流

准备阶段

  1. 初始化远程工作区和共享版本库
git init --bare
  1. 项目经理初始化项目,并在master分支定制标记

    添加初始化文件

git add .
git commit -m
git push
git tag v0.1
git push origin v0.1
  1. 项目经理基于master分支创建develop分支
git switch master
git branch Develop
git switch Develop
git push
  1. 项目经理给开发人员分配工作任务

开发阶段

  1. 开发人员基于develop分支创建功能分支
git branch feature/home
git switch feature/login
  1. 开发人员在自己的分支上add commit push
  2. 开发完成告诉项目经理,由项目经理审核代码并合并代码到develop
git pull
  • 检查代码
git switch feature/home
  • 没有问题项目经理会切换到Develop分支中将你的功能分支代码合并到Develop中
git switch Develop
git merge feature/home

检查代码

git switch feature/login
  • 没有问题项目经理会切换到Develop分支中将你的功能分支代码合并到Develop中
git switch Develop
git merge feature/login

准备上线阶段

  1. 项目经理基于develop分支创建release分支
git switch Develop
git branch Release/v1.0
  1. 测试人员获取release分支代码进行测试
  2. 发现bug由开发人员基于release分支创建bugfix分支进行修复
git pull
git switch Release/v1.0
git branch bugfix/issue32
  • 修复 bug / add / commit
  1. 修复完成后重新合并到release分支
git switch Release/v1.0
git merge bugfix/issue32
git push
  • 将测试和修复完所有bug的最终代码合并到master分支和develop分支
git switch Develop
git merge Release/v1.0
git switch master
git merge Release/v1.0

项目上线

  1. 项目经理在master分支定制标记
git switch master
git tag -a v1.0 -m"项目第一次上线"
  1. 项目经理将标记的版本提交到远程服务器
git push origin v1.0

上线之后

  1. 项目上线后发现紧急bug
  2. 基于master分支创建hotfix分支,在该分支上修复bug
git switch master
git branch hotfix/issue66
  • 修复 bug / add / commit
  1. 修复完成后重新合并到master分支和develop分支
git switch Develop
git merge hotfix/issue66
git switch master
git merge hotfix/issue66
  1. 项目经理重新在master分支定制标记
git tag v1.1
git push origin v1.1

Git经典协同模型

  • 中心仓库:包含master和develop两个分支
  • 分支分类
    • 主要分支:master和develop分支
    • 支持性分支:特性分支,发布分支,热补丁分支
  • 对于商业级项目,真正开发过程中都是基于develop分支进行的,develop分支是开发主线!
  • master分支中,只存放相对稳定的分支,例如:0.1版本, 0.2版本
  • 在实际产品开发中,需要规划版本,例如:将100个功能规划到5个不同的版本上
  • 发现bug,要基于上一个最稳定的版本进行修复,这是热补丁分支存在的意义!
  • 理解清楚版本管理分支的特性,是迭代式开发的重要基础!

  • git branch:查看所有分支
  • git branch 分支名称:创建分支
    • 新创建的分支中的内容和master分支中的内容一样,这还是得要看你是从那个分支中创建的,从那个分支中创建的内容就是那个分支当中的
  • git checkout 分支名称:切换到指定分支
  • git merge 分支名称:合并分支
    • 将当前所在分支和指定名称分支进行合并,只是内容合并,分支任然还在
  • git branch -d 分支名称:删除指定分支
    • 不能在当前分支中删除自己

总结

  • master 主分支
    • 负责记录上线版本的迭代,该分支代码与线上代码是完全一致的
  • develop 开发分支
    • 该分支记录相对稳定的版本,所有的feature分支都从该分支创建
  • feature/* 特性(功能)分支
    • 用于开发新的功能,不同的功能创建不同的功能分支,功能分支开发完成并自测通过之后,需要合并到 develop分支
  • release/* 发布分支
    • 用于代码上线准备,该分支从develop分支创建,创建之后由测试发布到测试环境进行测试,测试过程中发现bug需要开发人员在该release分支上进行bug修复,所有bug修复完后,在上线之前,需要合并该release分支到master分支和develop分支
  • bugfix/* bug修复分支
    • 用于修复不紧急的bug,普通bug均需要创建bugfix分支开发,开发完成自测没问题后合并到 develop 分支后,删除该分支
  • hotfix/* 紧急bug修复分支
    • 该分支只有在紧急情况下使用,从master分支创建,用于紧急修复线上bug,修复完成后,需要合并该分支到master分支以便上线,同时需要再合并到develop分支

posted @ 2020-09-20 15:40  BNTang  阅读(113)  评论(0编辑  收藏  举报