Gitflow

参考:

一.分支简述

  • 蓝圆--主线(master)
  • 紫圆--主分支(dev)(生产主线)
  • 橙圆--新功能开发主线(feature)
  • 绿圆--新版本发布线(release)
  • 红圆--发布版本bug修复线(hotfix)

二.工做流程

工做流基础

项目负责人建立dev分支供团队开发人员围绕它进行相关操做git

git branch dev
git push -u origin dev

复制代码

其余人clone,建立一个dev的轨迹版本github

git clone git@github.orgXXXXXXXX
git checkout -b dev origin/dev

复制代码

dev这个分支将包含项目的完整历史记录,而master仅包含缩略版本。web

新功能开发流程

1.新建feature分支bash

在dev基础上建立新分支:测试

git checkout -b feature/demo dev

复制代码

推到远程,(而后这部分新功能代码就提交到这个上)ui

git push

复制代码

全部开发此新功能的人员,都在这个分支上开发提交代码spa

git status
git add
git commit -m "Add some-file."

复制代码

2.完成新功能开发(合并feature分支到dev上去)3d

git pull origin dev
git checkout dev
git merge feature/demo
git push
git branch -d feature/demo

复制代码

注意code

  • 新功能分支,永远不要直接在master上合并,要在dev上进行操做
  • 合并时作好冲突合并(webstrom可实现自动合并)

3.测试环境发布dev分支代码(提交测试)cdn

线上版本发布流程

(1)从dev中建立发布的release分支

当主测试流程完成,源码已经趋于稳定,准备一个发布版本(确立版本号),并推到远程

git checkout -b release-1.0 dev
git push

复制代码

这个分支是清理准备发布、 总体回归测试、 更新文档,和作其余任何系统即将发布的事情。

(2)开发交代码改bug

(3)release分支合并到master和dev

一旦已经知足发布条件(或已经到了预约发布日期),应该把release分支合并到master分支和dev分支中,而后,使用master发布新版本。合并release分支到dev分支是很重要的,要让release上修改的东西能在后续的开发分支中生效。

master

git checkout master
git merge release-1.0
git push

复制代码

dev

git checkout develop
git merge release-1.0
git push
git branch -d release-1.0

复制代码

(4)打标签

Release分支在功能开发分支(dev)和公共发布版(master)中,充当一个缓冲的做用。每当有源码合并到master中的时候,应该在master上打一个标签,以便后续跟踪查阅。

git tag -a 1.0.RELEASE -m "Initial public release" master
git push --tags

复制代码
线上bug修复过程

当用户反馈系统有bug,需从master基础上建立并维护hotfix新分支,解决完在合并回master

(1)建立hotfix

git checkout -b issue-#001 master

复制代码

(2)修复

(3)完成后合并到master发布

git checkout master
git merge issue-#001
git push

复制代码

(4)打标签

(5)合并到dev

git checkout develop
git merge issue-#001
git push


复制代码

三.小结

  • master仅包含缩略版本,dev包含项目完整历史记录
  • 添加新功能都在dev上新生成分支feature进行操做,而后在合并回dev上
  • 版本:在dev上测试流程完成,源码趋于稳定时,在dev上建立一个release做为发布版本号(其实就是master和dev之间的一个缓冲)
  • 线上修bug:反馈出bug以后,在master基础上新建一个分支hotfix,在该hotfix上修好了在合并回master,并同步到dev
相关文章
相关标签/搜索