git flow概念

  • git 作为一个代码管理系统,不可避免的会涉及到多人合作。
  • Git flow是基于git之上的一种软件开发迭代模型。Git flow是使用git进行源代码管理的一套行为规范。简单来说就是通过规范化的流程,使得产品、开发与测试等各个部门更高效的协同工作。
  • Git Flow重点解决的是由于源代码在开发过程中的各种冲突导致开发活动混乱的问题,提高开发效率。

git flow中的分支

Git Flow模型中定义了主分支和辅助分支两类分支。其中主分支用于组织与软件开发、部署相关的活动;辅助分支组织为了解决特定的问题而进行的各种开发活动。

主分支

  • master 分支
  • develop 分支

辅助分支

我们的开发模式旁边的主要分支机构掌握和发展,使用各种支持分支机构,以帮助团队成员之间的平行发展,便于跟踪的功能,准备生产版本,并协助快速修复现场生产问题。 与主分支不同,这些分支总是有有限的生命时间,因为它们最终将被移除。

  • feature 分支
  • release 分支
  • hotfix 分支

主要功能

  1. master分支:用于存放对外发布的版本,任何时候在这个分支获取到的都是稳定的已发布的版本。
  2. develop分支:用于日常开发,存放最新的开发版。
  3. feature分支
  • 从develop分支检出
  • 必须合并会develop分支
  • 命名规范:除了master, develop, release-* , or hotfix-*

当开始一个新特征的开发时,从develop检出feature分支。Feature分支的本质是,只要特性处于开发阶段,它就会存在,将来会被合并会develop分支(为了即将发布的版本而明确地添加新特性),或者丢弃掉(如果是令人失望的实验)。

Feature分支只存在于开发者本地,不能被提交到远程库

4. release分支

  • 从develop分支检出
  • 必须合并回develop分支和master分支
  • 命名规范:release-*

release分支是为发布新的产品版本而设计的。在这个分支上的代码允许做小的缺陷修正、准备发布版本所需的各项说明信息(版本号、编译时间等等)。通过在release分支上进行这些工作可以让develop分支空闲出来以接受新的feature分支上的代码提交,进入新的软件开发迭代周期。

当develop分支上的代码已经包含了所有即将发布的版本中所计划包含的软件功能,并且已通过所有测试时,我们就可以考虑准备创建release分支了。而所有在当前即将发布的版本之外的业务需求一定要确保不能混到release分支之内(避免由此引入一些不可控的系统缺陷)。

  1. hotfix分支
  • 从master检出
  • 合并会develop和master分支
  • 命名规范:hotfix-*

hotfix分支非常像release分支,因为它们都意味着即将发布一个新的版本,尽管是未计划的。

当线上出现一个严重的bug,需要立即修复的时候,就需要从master分支上指定的tag版本派生hotfix分支来进行紧急修复工作。

这样做的显而易见的好处是不会打断正在进行的develop分支的开发工作,能够让团队中负责新功能开发的人与负责代码紧急修复的人并行的开展工作。

summary

Git Flow开发模型从源代码管理角度对通常意义上的软件开发活动进行了约束。应该说,为我们的软件开发提供了一个可供参考的管理模型。Git Flow开发模型让nvie的开发代码仓库保持整洁,让小组各个成员之间的开发相互隔离,能够有效避免处于开发状态中的代码相互影响而导致的效率低下和混乱。

所谓模型,在不同的开发团队,不同的文化,不同的项目背景情况下都有可能需要进行适当的裁剪或扩充。

Git flow概念相关推荐

  1. git flow 概念

    git flow 概念 Git作为一个代码管理系统,不可避免的会涉及到多人协作. 俗话说无规矩不成方圆.Git Flow 就是如何使用git 分支的一种规范,或者叫做推荐.简单来说就是通过规范化的流程 ...

  2. SAP Spartacus 的 git flow 和发布流程

    Git Flow and Release Process Library Version Compatibility Spartacus 项目由一组库组成. 为了更容易知道哪个版本的库与另一个版本兼容 ...

  3. Git Flow分支策略与Azure DevOps相关功能简介

    想了很久,还是写这么一篇文章来总结一下有关分支策略和DevOps的一些内容吧.其实,DevOps相关的内容并不是我的工作范围,不过对于敏捷开发.DevOps.项目管理等等这一系列的与开发过程相关的内容 ...

  4. Git - 团队合作利器 Branch 与 Git Flow

    [原文地址]:从0开始学习 GitHub 系列之「团队合作利器 Branch」 Git 相比于 SVN 最强大的一个地方就在于「分支」,Git 的分支操作简直不要太方便,而实际项目开发中团队合作最依赖 ...

  5. Git Flow 的正确使用姿势

    一.背景: 大多数公司为了可以快速迭代,一般只有两个环境,一个是测试环境,另外一个是线上环境.这个时候问题就来了,如果线上出现bug要如何修复才不会影响当前版本测试.如果多个版本同时迭代开发,如何才能 ...

  6. Git Flow—Git团队协作最佳实践

    一.规范的Git使用 Git是一个很好的版本管理工具,不过相比于传统的版本管理工具,学习成本比较高. 实际开发中,如果团队成员比较多,开发迭代频繁,对Git的应用比较混乱,会产生很多不必要的冲突或者代 ...

  7. 从一个前端项目实践 Git flow 的流程与参考

    Git flow 出自 A successful Git branching model,这里使用了一个前端项目配合本文稿实施了 git flow 并记录流程作出示例和参考,对 hotfix 与持续部 ...

  8. 如何正确使用Git Flow 流程

    我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使用Git, 以及如何在团队中正确使用. Git的优点 Git的优点很多,但是这里只列出我认为 ...

  9. Git学习笔记—Git Flow

    在Java程序开发中的定制开发规范,想要把项目正规高效的跑起来.引入 Git 版本控制,Git-Flow 便成为了首选. 今天动力节点Java学院来带你了解一下. 一.为什么使用 git-flow 当 ...

最新文章

  1. CQRS体系结构模式实践案例:Tiny Library:领域仓储与事件存储
  2. 【设计模式】基本概念
  3. angular 获取ng-repeat完成状态 $last
  4. USACO-Section1.6 Prime Palindromes(素数和回文数)
  5. Redis详解(六)------ RDB 持久化
  6. Ubuntu 实现点击菜单栏图标最小化程序
  7. 远程桌面连接的几种方法
  8. 易宝支付 -- 微信小程序对接
  9. 小米手机怎么在图片显示定位服务器,小米浏览器中,图片导致fixed定位的元素无法显示...
  10. java math 三角函数_Java 使用Math类中的三角函数
  11. 组合数学之三 —— 生成函数
  12. 下载导出自定义格式Excel文件
  13. nowcoder刷题总结
  14. apache实验报告 linux_Apache服务器配置实验报告
  15. 安全私人云储存时代 H3C Magic M2脱颖而出
  16. 论hr面试问题:离职原因
  17. CocosCreator实现不规则的点击区域监听
  18. npm i --save 与 --save -dev的区别
  19. 【PWA学习】4. 使用 Push API 实现消息推送
  20. h5手机端或PC端利用高德地图获取当前定位位置

热门文章

  1. 计算机中补码能算减法的原因和补码的由来,最强逻辑解析
  2. 数据库原理与应用研究报告-在线救援物资求助系统
  3. 重型工业机械设备远程监控解决方案
  4. Phase Sensitive Filter
  5. 为啥 redis 使用 跳表 (skiplist) 而不是使用 red-black?
  6. 你的伙伴对你最大会话_有人说 在微信聊天里 你怎么结束一段对话 就能看出你和对方的...
  7. SQL 注入绕过技术再次总结
  8. 同比增长超120% 互联网保险消费投诉猛增
  9. oracle本机安装,序列自增,自增序列跳号问题
  10. aruidno WiFiManager界面汉化