Gitflow存在两个记录项目历史的分支

  • Master分支:存储(官方的,正式的)项目发布历史记录的分支。
  • develop分支:充当功能的集成分支。

Develop分支将包含项目的完整历史记录,而master将包含简化版本。现在,其他开发人员应该克隆中央存储库,并为develop创建跟踪分支。

⚠️:基于Master分支创建develop分支。


特性分支(feature branch)

每个新功能应驻留在其自己的(特性)分支中,可以将其推送到中央存储库以进行备份/协作。但是,特性(feature)分支不是基于master分支创建,而是将develop分支作为自己的父分支。功能完成后,它会重新合并到develop分支中,并删除当前的feature分支。feature分支绝不能直接与master分支进行交互。

⚠️:通常我们基于最新的develop分支创建feature分支。


Release分支

一旦develop分支获得了足够的发布功能(或临近预定的发布日期),你就需要基于develop分支创建release分支,创建此分支将开始下一个发行周期,因此此刻之后release分支不能添加任何新功能-除了错误修复,文档生成以及其他面向发行版的任务的改动。一旦准备好发布,release分支将合并到master分支并用版本号标记。另外,应该将其合并回develop分支,因为release分支可能已经存在新的提交。

使用专用的分支进行发布可以让我们在发布的同时,其他团队可以继续为下个发行版本开发新功能,而不影响此次发布。它还创建了明确定义的开发阶段(例如,可以很容易地说:“本周我们正在为版本4.0做准备,并且可以在存储库的结构中实际看到它“)。

一旦release分支准备好发布,它将被合并到master和develop分支中,然后release分支将被删除。重新合并到develop分支中很重要,因为关键更新可能已添加到release分支,并且新功能需要访问这些更新。如果您的组织强调code review,那么这将是合并到develop的理想场景。

⚠️:release分支基于develop分支。


hotfix分支

维护或“hotfix”分支用于快速修补生产版本。hotfix分支与release分支和feature分支很像,只是hotfix分支是基于主版本而不是开发版本的。

hotfix是唯一应直接从master创建的分支

修复程序完成后,应将其合并到master和develop(或当前release分支)中,随后删除hotfix分支,并应使用更新的版本号(tag)标记master分支。

拥有专门的错误修复开发线,您的团队可以在不中断其余工作流程或不等待下一个发布周期的情况下解决问题。您可以将hotfix分支视为直接与master一起使用的临时发行分支。

Gitflow的总体流程为:

  1. A develop branch is created from master
  2. A release branch is created from develop
  3. Feature branches are created from develop
  4. When a feature is complete it is merged into the develop branch
  5. When the release branch is done it is merged into develop and master
  6. If an issue in master is detected a hotfix branch is created from master
  7. Once the hotfix is complete it is merged to both develop and master

总结

本文介绍了gitflow的工作流程。

Gitflow存在两个记录项目历史的分支

  • Master分支:存储(官方的,正式的)项目发布历史记录的分支。
  • develop分支:充当功能的集成分支。

Develop分支将包含项目的完整历史记录,而master将包含简化版本。现在,其他开发人员应该克隆中央存储库,并为develop创建跟踪分支。

⚠️:基于Master分支创建develop分支。


特性分支(feature branch)

每个新功能应驻留在其自己的(特性)分支中,可以将其推送到中央存储库以进行备份/协作。但是,特性(feature)分支不是基于master分支创建,而是将develop分支作为自己的父分支。功能完成后,它会重新合并到develop分支中,并删除当前的feature分支。feature分支绝不能直接与master分支进行交互。

⚠️:通常我们基于最新的develop分支创建feature分支。


Release分支

一旦develop分支获得了足够的发布功能(或临近预定的发布日期),你就需要基于develop分支创建release分支,创建此分支将开始下一个发行周期,因此此刻之后release分支不能添加任何新功能-除了错误修复,文档生成以及其他面向发行版的任务的改动。一旦准备好发布,release分支将合并到master分支并用版本号标记。另外,应该将其合并回develop分支,因为release分支可能已经存在新的提交。

使用专用的分支进行发布可以让我们在发布的同时,其他团队可以继续为下个发行版本开发新功能,而不影响此次发布。它还创建了明确定义的开发阶段(例如,可以很容易地说:“本周我们正在为版本4.0做准备,并且可以在存储库的结构中实际看到它“)。

一旦release分支准备好发布,它将被合并到master和develop分支中,然后release分支将被删除。重新合并到develop分支中很重要,因为关键更新可能已添加到release分支,并且新功能需要访问这些更新。如果您的组织强调code review,那么这将是合并到develop的理想场景。

⚠️:release分支基于develop分支。


hotfix分支

维护或“hotfix”分支用于快速修补生产版本。hotfix分支与release分支和feature分支很像,只是hotfix分支是基于主版本而不是开发版本的。

hotfix是唯一应直接从master创建的分支

修复程序完成后,应将其合并到master和develop(或当前release分支)中,随后删除hotfix分支,并应使用更新的版本号(tag)标记master分支。

拥有专门的错误修复开发线,您的团队可以在不中断其余工作流程或不等待下一个发布周期的情况下解决问题。您可以将hotfix分支视为直接与master一起使用的临时发行分支。

Gitflow的总体流程为:

  1. A develop branch is created from master
  2. A release branch is created from develop
  3. Feature branches are created from develop
  4. When a feature is complete it is merged into the develop branch
  5. When the release branch is done it is merged into develop and master
  6. If an issue in master is detected a hotfix branch is created from master
  7. Once the hotfix is complete it is merged to both develop and master

总结

本文介绍了gitflow的工作流程。


关注笔者公众号,推送各类原创/优质技术文章 ⬇️

Gitflow分支管理策略的更多相关文章

  1. Git工程开发实践(四)——Git分支管理策略

    A successful Git branching model https://nvie.com/posts/a-successful-git-branching-model/ Git工程开发实践( ...

  2. SVN分支管理策略个人见解

    本篇目录 前言 SVN分支管理策略 VisualSVN Server TortoiseSVN客户端 Repository的创建 Check out trunk创建新项目MyProject trunk更 ...

  3. Git 分支管理策略

    分支管理策略 下面我们来说一下一般企业中开发一个项目的分支策略: 主分支 master 开发分支 develop 功能分支 feature 预发布分支  release bug 分支 fixbug 其 ...

  4. git分支管理之分支管理策略

    分支管理策略 阅读: 246888 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用Fast forward模式,Git就 ...

  5. 五、git学习之——分支管理策略、Bug分支、feature分支、多人协作

    一.分支管理策略 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用Fast forward模式,Git就会在merge时生 ...

  6. Git 分支管理策略汇总

    原文链接: Git 分支管理策略 最近,团队新入职了一些小伙伴,在开发过程中,他们问我 Git 分支是如何管理的,以及应该怎么提交代码? 我大概说了一些规则,但仔细想来,好像也并没有形成一个清晰规范的 ...

  7. git多人协作式开发时分支管理策略

    什么是 git-flow? Git Flow是一套使用Git进行源代码管理时的一套行为规范 主分支Master 首先,代码库应该有一个.且仅有一个主分支.所有提供给用户使用的正式版本,都在这个主分支上 ...

  8. git 教程(15)--分支管理策略

    通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的comm ...

  9. 梳理git分支管理策略

    如果你严肃对待编程,就必定会使用"版本管理系统"(Version Control System). 眼下最流行的"版本管理系统",非Git莫属. 相比同类软件, ...

随机推荐

  1. 如何让Docker镜像飞起来

    前言 Docker用起来非常爽,尤其是用于DevOps实践时.但是,当你在国内或者本地拉取镜像时,经常会碰到各种“便秘”——要么镜像拉取缓慢,要么时断时连,要么连接超时! 当我们的镜像又比较大时(比如 ...

  2. mysql系列-⼀条SQL查询语句是如何执⾏的?

    ⼀条SQL查询语句是如何执⾏的? ⼤体来说,MySQL 可以分为 Server 层和存储引擎层两部分 Server 层 Server 层包括连接器.查询缓存.分析器.优化器.执⾏器等,涵盖 MySQL ...

  3. coding++:java操作 FastDFS(上传 | 下载 | 删除)

    开发工具  IDEAL2017  Springboot 1.5.21.RELEASE --------------------------------------------------------- ...

  4. Ribbon负载均衡实现

    1,在之前的博文中,我通过eureka,consul,zookeeper 实现了注册中心,在实现的服务发现过程中,都是通过RstTemplate 来实现RPC 远程调用 RestTemplate 封装 ...

  5. 常见Web安全漏洞--------XSS 攻击

    1,XSS 攻击 XSS攻击使用Javascript脚本注入进行攻击 例如在提交表单后,展示到另一个页面,可能会受到XSS脚本注入,读取本地cookie远程发送给黑客服务器端. <script& ...

  6. vue-父组件传递参数到子组件

    案例: 父组件 <template> <div id="app"> <h1>vuex</h1> <h3>count:{{ ...

  7. java Jsoup.clean 处理入参时,会将换行符解析成空字符串问题

    Json 中clean方法有两个: 一:会格式化入参,将换行符替换成空格 clean(String bodyHtml, String baseUri, Whitelist whitelist) 二:n ...

  8. js生成一个指定范围内的随机整数

    function __random(start=0, end=1) { return Math.floor(Math.random() * (end - start + 1) + start); } ...

  9. 在vue项目中使用md5加密 sirai

    1.安装模块 npm install js-md5 -D 2.在项目中引入模块 import md5 from 'js-md5' 3.把你需要加密的信息进行前期处理 CalcuMD5 = functi ...

  10. PTA数据结构与算法题目集(中文) 7-27

    PTA数据结构与算法题目集(中文)  7-27 7-27 家谱处理 (30 分)   人类学研究对于家族很感兴趣,于是研究人员搜集了一些家族的家谱进行研究.实验中,使用计算机处理家谱.为了实现这个目的 ...