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. github本地提交代码到远程仓库

    1.git工作状态: Workspace: 工作区  :等于平时放代码的地方 Index / Stage: 暂存区,临时存放你的改动,它只是一个文件,保存即将提交到文件列表信息 Repository: ...

  2. DNS提供的服务

    DNS提供的服务 DNS是:1.一个由分层的DNS服务器实现的分布式数据库:2. 一个使主机能够查询分布式数据库的应用协议.DNS协议运行在UDP上,使用53号端口. 与http,FTP,SMTP协议 ...

  3. CTF_WriteUp_HTTP基本认证(Basic access authentication)

    HTTP基本认证 在HTTP中,基本认证(英语:Basic access authentication)是允许http用户代理(如:网页浏览器)在请求时,提供用户名和密码 的一种方式.HTTP基本认证 ...

  4. windows10 64位 安装mysql服务端 并使用navicat客户端链接 掉的一堆坑

    1.目的 安装mysql服务端 并使用navicat客户端链接 2.过程 1)下载mysql服务端 下载过程(参考https://blog.csdn.net/youxianzide/article/d ...

  5. ThreadPoolTaskExecutor 中 corePoolSize vs. maxPoolSize

    1. 概览 Spring中的 ThreadPoolTaskExecutor 是一个 JavaBean ,提供围绕java.util.concurrent.ThreadPoolExecutor 的抽象实 ...

  6. c++源文件从文本阶段到可执行文件的过程

    过程分为四个阶段: 预处理阶段····>编译阶段····>汇编阶段····>链接阶段 1)预处理阶段:对源代码文件中的文件包含关系.预编译语句(宏定义)进行分析和替换,生成预编译文件 ...

  7. python绘图设置标题、标签,无法显示中文

    先说解决办法:在程序开始之前,引入使用的模块之后,添加如下代码: plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unico ...

  8. mysql事务提交和回滚机制

    应用场景:   银行取钱,从ATM机取钱,分为以下几个步骤       1 登陆ATM机,输入密码:    2 连接数据库,验证密码:    3 验证成功,获得用户信息,比如存款余额等:    4 用 ...

  9. CtenOS开放3306端口

    1.查看防火墙状态 2. 关闭防火墙firewall 3. 开启端口 4. 重启防火墙 5. 常用命令介绍 在 Centos 7 中防火墙由 firewalld 来管理,而不是 iptables. 1 ...

  10. TCP漫谈之keepalive和time_wait

    TCP是一个有状态通讯协议,所谓的有状态是指通信过程中通信的双方各自维护连接的状态. 一.TCP keepalive 先简单回顾一下TCP连接建立和断开的整个过程.(这里主要考虑主流程,关于丢包.拥塞 ...