gitflow介绍

gitflow介绍gitflow 介绍 gitflow 是 git 的一种工作流程规范 由 VincentDries 最先提出来 目的是为了解决分支和 commit 杂乱无章的问题 在实际开发过程中 若多名程序员开发同一个项目时很容易造成代码混乱甚至代码丢失的情况 而合理的运用 gitflow 规范可以很好地解决这个问题 如果你的公司很重视代码 review 那么 gitflow 更是你的不二之选 gitflow 工作流程 gitflow 五种分支 Production 分支也就是我们经常使用的 Master 分支 这个分支最近发布到生产环境

gitflow介绍

gitflow是git的一种工作流程规范,由Vincent Driessen最先提出来,目的是为了解决分支和commit杂乱无章的问题,在实际开发过程中,若多名程序员开发同一个项目时很容易造成代码混乱甚至代码丢失的情况,而合理的运用gitflow规范可以很好地解决这个问题.如果你的公司很重视代码review,那么gitflow更是你的不二之选.

gitflow工作流程

gitflow五种分支

– Production 分支

也就是我们经常使用的Master分支,这个分支最近发布到生产环境的代码,最近发布的Release, 这个分支只能从其他分支合并,不能在这个分支直接修改

– Develop 分支

这个分支是我们是我们的主开发分支,包含所有要发布到下一个Release的代码,这个主要合并与其他分支,比如Feature分支

– Feature 分支

这个分支主要是用来开发一个新的功能,一旦开发完成,我们合并回Develop分支进入下一个Release

– Release分支

当你需要一个发布一个新Release的时候,我们基于Develop分支创建一个Release分支,完成Release后,我们合并到Master和Develop分支

– Hotfix分支

当我们在Production发现新的Bug时候,我们需要创建一个Hotfix, 完成Hotfix后,我们合并回Master和Develop分支,所以Hotfix的改动会进入下一个Release

gitflow流程描述

如图,develop为开发分支,master为主分支,同步于develop,部署在生产环境中

如图,假设在当前项目中,需要开发两个模块,所以基于develop分支打下来两个feature分支(feature分支为功能分支),因为模块1功能点较多,所以程序员小王和小李两个人去开发模块1;模块2功能点较少,所以程序员小张一个人去开发模块2.

在开发模块1时,因为两个人同步开发,所以应当基于feature/order_upgrate_cy_dev打子分支,两人在各自的子分支下进行开发,当开发完毕后,再从各自的子分支合并到feature/order_upgrate_cy_dev这个分支下,当两人都已合并完成后,先拉下develop最新代码(因为模块2可能已经开发完毕并合并到develop下了),然后就可以把分支feature/order_upgrate_cy_dev合并到develop下了,当然在此之前如果能进行代码review能好.

开发模块2同理

如图,为release分支,由版本号命名,其作用主要为上线前的准备,包括测试和app质量检测.之前在开发过程中,程序员都会进行单元测试,至少保证了功能实现,但是还要考虑别的因素就需要集成测试,系统测试,验收测试,回归测试了,如果该软件活跃用户较高,还需要压力测试.下面说下release分支的流程,我们从develop分支下打一个release分支下来,命名跟着上一个版本号走,例如上一个版本是v0.1,那么该版本就命名就为v0.2(注意release分支为app大版本的迭代),接下来我们需要把release分支交给测试和质量检测部门去做测试相关的工作,若测试有问题,则程序员需要在release分支下进行代码修改,然后再交由测试,直至测试没问题为止,当测试通过后,就到了上线环节了,我们需要把release分支同时合并到master分支和develop分支下并打上标记,然后线上跑的是master,这一个版本迭代就实现了.

如图,为hotfix分支,其主要目的是线上bug修改,小功能的修改.在软件开发过程中难免会有bug或者新增一个字段这种小需求,作为一个大版本就解决这些小问题是有些合理的,而且bug需要尽快修复不可能去等下一个版本迭代再去修改,这时候我们的hotfix分支就派上用场了.下面说下hotfix主要流程,我们需要先切到master分支,然后在master分支下新建一个hotfix分支,命名规则为在当前release版本号后面写小版本号,例如: 当前的release分支为v0.2,则hotfix分支名为v0.2.1,下个hotfix分支名为v0.2.2,之后就是在hotfix下进行bug修复了,修改完毕后再推到master和develop并打标记,bug就修复成功了

gitflow流程涉及到的命令

1.新建feature

git flow init 初始化

git checkout develop 切换到 develop 分支

git checkout -b feature/name 新建feature分支

2.提交合并feature

在feature下开发完功能后

git pull origin develop拉去最新代码(避免冲突)

git add . 提交

git commit -m ‘注释’ 提交注释

git push 提交

在github上申请合并

3.release分支

切到develop分支

git flow release start v.1.0 创建release分支

交给产品测试,测试完成后

git flow release finish v.1.0

git push origin master develop –tags 推到master和develop并打标记

4.hotfix分支

切到main分支

git flow hotfix start v.1.1 创建hotfix分支

线上代码修复完成后

git flow hotfix finish v.1.1 完成hotfix分支

git push origin master develop –tags 推到master和develop并打标记

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/203743.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午9:41
下一篇 2026年3月19日 下午9:42


相关推荐

  • 差分进化算法总结

    差分进化算法总结基本介绍 DE Differential 算法于 1997 年由 RainerStorn 和 KennethPrice 在遗传算法等进化思想的基础上提出的 本质是一种多目标 连续变量 优化算法 用于求解多维空间中整体最优解 其基本思想即是来源于遗传算法 模拟遗传算法中的杂交 变异 复制来设计算子 DE 算法和 GA 算法的相同点 随机生成初始种群以种群中个体适应度值为选择标准主要过

    2026年3月18日
    1
  • idea2022在哪输入激活码【2022.01最新】2022.02.15

    (idea2022在哪输入激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年4月1日
    93
  • 平庸前端码农之蜕变 — AST

    平庸前端码农之蜕变 — AST前言首先,先说明下该文章是译文,原文出自《ASTforJavaScriptdevelopers》。很少花时间特地翻译一篇文章,咬文嚼字是件很累的事情,实在是这篇写的太棒了,所以忍不住想和大家一起分享。该译文出自我的博客:github.com/CodeLittleP…,我的博客会不定时更新各种类型文章,希望大家支持。OK,我们直接进入正题。为什么要谈AST(抽象语法树)?如果你查看目…

    2022年7月21日
    15
  • 【转载】lvs为何不能完全替代DNS轮询

    【转载】lvs为何不能完全替代DNS轮询

    2021年11月20日
    55
  • java栈的使用_用java实现栈结构

    java栈的使用_用java实现栈结构Stack的基本使用初始化Stackstack=newStack判断是否为空stack.empty()取栈顶值(不出栈)stack.peek()进栈stack.push(Object);出栈stack.pop();实例:publicclassTest01{publicstaticvoidmain(String[]args){…

    2025年9月21日
    15
  • android gridlayout点击事件,Android GridLayout

    android gridlayout点击事件,Android GridLayout译者注:说实话我确实没用过GridLayout好好认识一下吧!android开发者每天都在问自己一个问题:我到底应该用哪个layout然而GridLayout在当前开发中的情况如下:大多数开发者并不知道这个布局一些开发者知道GridLayout但是因为某些原因没有使用只有少部分开发者花时间了解和积极使用这是我为什么要写这篇文章的原因,因为我觉得这个布局被不公平遗忘了为什么我们需要GridLa…

    2022年4月30日
    72

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号