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. masql数据库的表查询

    昨日回顾 表与表之间建关系 一对多 换位思考 图书与出版社 先站在左表: 考虑左表的多条数据能否对应右表的一条数据 翻译:多本书能否被一个出版社出版 可以! 注意:单站在一张得出的表关系并不能明确两张 ...

  2. Prism 源码解读1-Bootstrapper和Region的创建

    介绍 之前也研究过Prism框架但是一直没有深入理解,现在项目上想把一个Winform的桌面应用程序改造成WPF程序,同时我希望程序是可测试可维护架构良好的,Prism的这些设计理念正好符合我的需求, ...

  3. 【2019HDU多校】第九场1006/HDU6685-Rikka with Coin——位运算打表

    题目链接 题目大意 使用10.20.50.100元面额的硬币能分别组成题目给出的面额,需要最少的硬币个数 分析 一开始队友想用一堆if-else解决问题,然后WA了无数发-- 我想到了一种比较简单的打 ...

  4. 动态规划-Cherry Pickup

    2020-02-03 17:46:04 问题描述: 问题求解: 非常好的题目,和two thumb其实非常类似,但是还是有个一点区别,就是本题要求最后要到达(n - 1, n - 1),只有到达了(n ...

  5. 面试刷题24:介绍一枚 JAVA妹妹?

    java提供的自动垃圾收集机制大大提高了程序员的开发效率. 但是自动垃圾收集不是万能的,明确jvm的内存结构,工作机制是设计高扩展应用的基础. 也是诊断jvm运行时问题的必备技能. 我是李福春,我在准 ...

  6. 干货|漫画算法:LRU从实现到应用层层剖析(第一讲)

    今天为大家分享很出名的LRU算法,第一讲共包括4节. LRU概述 LRU使用 LRU实现 Redis近LRU概述 第一部分:LRU概述 LRU是Least Recently Used的缩写,译为最近最 ...

  7. PyTorch专栏(五):迁移学习

    专栏目录: 第一章:PyTorch之简介与下载 PyTorch简介 PyTorch环境搭建 第二章:PyTorch之60分钟入门 PyTorch入门 PyTorch自动微分 PyTorch神经网络 P ...

  8. 热点 | 四月最佳Github项目库与最有趣Reddit热点讨论

    来源:Analytics Vidhya 编译:磐石 [磐创AI导读]:Github是全球最大的开源代码社区,Reddit是最受大家欢迎的热点讨论交流平台.接下来磐创AI将为大家带来四月份Github最 ...

  9. 用卷积神经网络和自注意力机制实现QANet(问答网络)

    欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/ ,学习更多的机器学习.深度学习的知识! 在这篇文章中,我们将解决自然语言处理(具体是指问答)中最具挑战性 ...

  10. coding++:MySQL-ERROR:Column 'complaint_settlement_id' in field list is ambiguous

    (多表查询出现的问题)列'ID'在字段列表中重复,其实就是两张表有相同的字段,但是使用时表字段的名称前没有加表名,导致指代不明. 如 前面加上表名前缀就没问题了.