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. CMDB_Agent_ssh版本分析

    目录 CMDB_Agent+ssh版本+server端 CMDB_Agent版本 CMDB概念 CMDB_Agent介绍 agent方案 ssh类方案 相比较 client端 架构目录 bin-sta ...

  2. 洛谷3372线段树模板题 对区间+k或者查询区间和

    #include<bits/stdc++.h> using namespace std; typedef unsigned int ui; typedef long long ll; ty ...

  3. 洛谷P1957口算练习题题解

    前言: 题目传送门:https://www.luogu.com.cn/problem/P1957 其实这很简单 纯模拟撒~~~~ 正文开始: _话说 ,就当本蒟蒻正高高兴兴的刷水题时,居然 碰到了这个 ...

  4. O3优化模板

    #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize("Ofast") #pragma GCC ...

  5. windows10环境下QtCreator中出现skipping incompatible xxx when searching for xxx 问题解决办法

    windows10环境下QtCreator中出现skipping incompatible xxx when searching for xxx 我再QtCreator中想导入一个外部库时,他提示不匹 ...

  6. PHP7内核(三):源码目录结构

    上篇文章我们已经介绍了源码分析工具的安装.配置以及调试方法,本文我们来讲述一下PHP源码的目录结构. 一.目录概览 以php-7.0.12为例,看过源码的同学们应该发现源码目录多达十多个,下面是每个目 ...

  7. 类加载机制之ClassLoader

    1,类加载 每个编写的”.java”拓展名类文件都存储着需要执行的程序逻辑,这些”.java”文件经过Java编译器编译成拓展名为”.class”的文件,”.class”文件中保存着Java代码经转换 ...

  8. [bzoj1800]fly 飞行棋<暴力>

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1800 说实话我这几天运气不错,随便在bzoj上找题都可以找到水题,这题在代码上没有丝毫难度 ...

  9. Markdown语法快速学习

    Markdown 简洁语法说明 0.前言 一直以来都是以word文档做笔记,存在很多问题,比如代码格式.高亮等.这次公司要求使用markdown,感觉眼前一亮,以前word的问题都得到了解决,而且可以 ...

  10. Go语言库系列之email

    导读 大家好我是平也,今天跟大家介绍一款用来发送邮件的Go语言库email,目前星星1.3k,非常好用. 极速上手 准备工作 初始化项目 go get github.com/jordan-wright ...