git工作流

功能分支工作流

  • 创建本地分支feture_xxx
  • 切换本地分支feture_xxx
  • 推送本地分支至远程仓库,此时远程仓库出现feture_xxx
  • 本地编辑功能
  • 提交并推送至远程仓库分支
  • 远程分支pull request
  • 老大:merge pull request
  • 切换到master,拉取master最新代码
  • 切换检出,删除开发好的本地分支和远程分支feture_xxx

GitFlow 工作流

v1.0.0
->v1.0.1
hotfix补丁针对最后一位,功能模块变化第二位,大架构变化第一位

步骤

老大

  • 基于master创建分支develop分支
  • 切换develop,推送到远程分支

新人小红:

  • 在master分支下拉取,得到远程的develop分支
  • 切换到拉取的远程develop分支
  • 基于develop创建自己的功能分支feture_xxx
  • 切换到注册功能分支
  • 本地编辑功能
  • 提交并推送至远程仓库分支 feture_xxx
  • pull request,base选择develop,合并到develop上
  • 老大:merge pull request

开发到一个阶段,想要发布一个版本

  • 切换到develop分支
  • 拉取远程develop分支
  • 基于develop创建预发布分支release-1.0.0(测试用)
  • 切换到release-1.0.0
  • 推送预发布分支release-1.0.0到服务器
  • 远程切换到预发布分支release-1.0.0,感觉没问题了,把release-1.0.0 pull request,合并到master
  • 老大:merge pull request

达到里程碑

  • 切换到master
  • 拉取远端master,更新最新代码到本地
  • 基于本地master创建标签tag--正式里程碑版本1.0.0release
  • 推送仓库,包括标签

此时如果有人在Issues中提出问题,有问题编号

  • 检出,基于标签创建新分支(因为标签代码以及发布不能改)hotfix_(问题编号)
  • 本地修改好bug
  • 提交到hotfix
  • pull request,直接合并到master
  • 验证通过,确认合并
  • 本地切换到master,拉取代码
  • 创建标签1.0.1release,包括标签,推送到服务器
  • 删除分支,只留下develop和master

开发中使用场景(以分支0624为例)

  1. 基于0624建立本地的0624分支
  2. 基于本地的0624分支建立自己的功能分支fetureX
  3. 在自己的feture分支上进行操作
  4. 如果0624分支上代码有更新,拉取最新的代码到本地0624
  5. 在本地操作,把本地的0624合并到自己的功能分支fetureX,如果有冲突,解决冲突
  6. 把自己的功能分支fetureX提交推送到云端分支fetureX(自己检查一下代码变化),在云端发送pullRequest请求merge代码到云端的0624
  7. 把merge地址发送给PM审核
原文地址:https://www.cnblogs.com/faramita/p/11305937.html