GIT - 代码分支管理模型之一

Git 常用的分支管理模型 Git分支版本模型 新项目需要使用git做代码管理工具,目前有几种主流的分支管理模型: Git Flow GitHub Flow Trunk Based Development Git Flow Git Flow是Vincent Driessen于2010年发表的一篇文章提出的:《A successful Git branching model》。 在这个模型中分别人feature branches develop release hotfix master分支 在这个模型中主要分支是master 阅读详情

这里要先强调一下,分支管理的方式各有千秋,不存在谁一定比谁好,只有谁比谁更适合你而已

成功的代码分支管理

这款人们的分支管理方案只要是从这篇叫A Successful Git Branching Model 衍生出来的。很多企业的项目都是采用这种方式来进行管理。下面这张图涵盖了这种方式的各种分支设计:
A successful Git Branching Model

这个模型基本能满足企业项目开发过程中遇到的各种代码版本管理的需求,下面尝试着把这种模型分解给大家讲讲:

咬住青山不放松

在上面的图中,大家可以看到有两个分支的名字被加粗了:master 和 develop,这两个是分支当中的中流砥柱。

master

这是新建一个GIT repository之后的第一个分支。在这个模型中,master分支代表的是当前产品线上的版本,它的最后一个commit可能是已经上线了,或者已经经过QA/PD/PO 千万次折磨、分分钟可以上线的功能。换句话说,这条分支要做到 随时都可以上线的! 要是谁把一个开发了一般的功能提交到这个版本上去,有可能会被PO拉去祭天的! 所以如果有严格的权限管理的话,一般会把这个分支给锁起来,有且仅有上线的同事才有权限动它!

另外master的每次上线都会打一个tag,表明版本号是多少

develop

一般灵长类动物都敬畏祭天这样的操作,所以我们需要开辟一篇新天地来大有作为。为了和大部队保持一致,develop的分支是基于master创建出来的

C:\githome\github\gitdou (master) (gitdou@0.1.0)
λ git branch
* master

C:\githome\github\gitdou (master) (gitdou@0.1.0)
λ git checkout -b develop
Switched to a new branch 'develop'

C:\githome\github\gitdou (develop) (gitdou@0.1.0)
λ git show-branch -a --no-name
* [develop] add httpUtil.js
 ! [master] add httpUtil.js
  ! [origin/HEAD] add httpUtil.js
   ! [origin/master] add httpUtil.js
----

最后的git show-branch -a --no-name 命令的输出可以看到develop的分支是基于master创建出来的

如果项目不是特别大,版本管理也比较简单,那么master跟develop这两个分支就基本够用了


文体两开花

当项目稍微大一些的时候,会遇到各种各样的版本管理需求,但不一定每一种你都需要,当需要的时候可以再建立这些分支,比如有features, release, hotfix

features

第一种情况比较常见,项目有很多同事并行开发,比如分了多模块给多个小组进行开发,如果各个模块都往develop分支上面丢,那么基本没办法做持续集成(Continue Integration)的操作。虽然最后集成的时候各模块一定会和谐相处的,但是在开发过程当中,不一定每一个commit都是向模块兼容,所以最好能每个模块都自行在一个旮旯捣腾,等最好确定能相亲相爱了,大家再杵到一块去。

这是我们可以基于模块创建各种feature分支,有关开发人员就在相应的分支上进行开发就行,等到各个功能分支基本完成了,我们再把这些分支merge到develop上面去

如果有了feature分支,那么develop分支基本就成了集成分支了

release

前面说了master分支代表着当前产品线上的版本,分分钟可以上线部署而不会导致祭天这种结局的。但这有些项目或团队有这样的情况,产品上线前要先部署到准产品线上去玩,内测一周左右,确定完全没有问题了再上到产品线上去。在内测的这一周,如果发现了有问题了,赶紧从develop分支进行修复,再上到准产品线来验证。如果我们用master分支来进行准产品线的部署,在内测的这一周发现问题,而这时我们的产品线上有紧急问题要fix,那么我们就无法直接拿master分支上线,这就做不到我们之前的承诺: master分分钟可以上线而不用祭天

所以我们可以创建一个release的分支来进行准产品线的部署和问题修复,知道确认完全没有问题了,我们再同步到master分支去上线

hotfix

做系统的哪可能没有bug!当产品线上无辜出现bug的时候,我们要去哪个分支做修复呢?

  • master :显然不合适,产品线上由于设计或者考虑不周出现bug一般是不用祭天的,但如果因为这样,在master上面一通乱改,那就有可能要祭天了
  • release:这个是给下一个版本用的呢。如果是上一个版本的话,那新增的修改就破坏了原来版本号的意义了,比如原来分支叫release-1.0.1, 那么加了这个版本还叫这个名字吗?
  • developer: 如果还有一些其它正在开发的功能,那一会上线的时候就会连带这个也稍上去了!
  • feature: 这就有点扯远了

看来上面这4种分支都不大合适,那就来款新的,就叫hotfix. hotfix分支是从master分支直接创建出来的,用来做一些产品线上紧急的代码修复,或者临时添加的小功能。开发人员直接在这个分支上进行开发,功能完成后直接上到master分支再上线。

记得每次hotfix上线后,要把功能同步回developer,再到各feature的分支上


以上就是关于 这款 成功的代码分支管理模型的讲解,基本上能满足大部分企业大部分项目的代码版本管理的需求! 后面会介绍另外一块代码分支管理模型,是指我们公司的一种管理的方式,下回见!

Git代码分支管理模型 Git代码分支管理模型简介Git flowGitHub flowGitLab flowTBD flowTBD++ flow1. 基于功能的主分支2. 基于发布的Release分支小结参考链接: 简介 现代软件开发过程中要实现高效的团队协作,需要使用代码分支管理工具实现代码的共享、追溯、回滚及维护等功能。目前流行的代码管理工具,包括CVS,SVN,Git,Mercurial等。相比CVS和SVN的集... 阅读详情

相关推荐

Git分支管理规范:从分支模型到代码回溯的实战指南

在团队协作中,版本控制是现代软件工程的基础设施,而分支管理策略直接决定代码交付的质量与效率。许多团队虽然熟悉Git命令,却因分支职责不清、合并路径混乱而频繁遭遇代码回溯与冲突问题。合理的分支模型将代码流转划分为不同职责的主干与开发线,通过明确的分支来源、合并目标以及生命周期的约束,确保master始终保持可部署状态,同时支援灵活的功能开发与缺陷修复。配合执行规范化的提交流程、合并前的冲突预解决、以及基于tag的发布基线,能显著降低代码被旧版本覆盖的风险。进一步地,借助Git Hook和远程分支保护机制,可以

weixin_42537142的博客 268

【CI/CD】图解六种分支管理模型

任何一家公司乃至于一个小组织,只要有写代码的地方,就有代码版本管理的主场,初入职场,总会遇到第一个拦路虎 git 管理流程,但是每一个企业似乎都有自己的 git 管理流程,倘若我们能掌握常用的 git 分支管理模型,那么无论碰到什么样的 git 管理流程,只不过都是这些管理模型的衍生与简化而已。

Data · Model · Agent · Repeat 4103

自用的GIT分支管理模型

个人自用的GIT分支管理模型,基于阿里AoneFlow开发分支管理模型,结合项目实际与公司当前管理流程做了部分修改。

u013081768的博客 1511

开源Agent Skill让AI画图不再翻车:从数据到专业图表全流程

在人工智能与数据可视化交叉领域,让模型直接生成图表往往伴随字体乱码、坐标轴密集、配色失调等高频问题。Agent Skill作为一种可复用的能力封装机制,将专业绘图流程固化为标准化操作手册,从数据特征识别、图表类型决策到代码生成与渲染校验形成完整闭环。它不再依赖临时提示词的一次性发挥,而是让AI按领域专家的思维执行任务,显著提升出图质量与稳定性。这种能力在数据分析报告、运营日报、论文插图等场景具有广泛实用价值,尤其适用于需要快速产出规范化图表的工作流。本文即从这一技术范式出发,介绍一个GitHub上获得2.5

weixin_33851429的博客 925

DPABI实战:手把手教你处理小鼠静息态fMRI数据(从Voxel Size到SPM完整流程)

本文详细介绍了使用DPABI处理小鼠静息态fMRI数据的完整流程,从Voxel Size调整到SPM分析,涵盖预处理、质量控制和可视化等关键步骤。针对小鼠数据特有的低分辨率和信噪比问题,提供了实战建议和避坑指南,帮助研究人员高效完成数据分析。

weixin_42663213的博客 476

史上最全分支管理模型总结(GitLab Flow)

GitLab Flow是指利用GitLab工具平台来帮助团队更有效地协作和管理软件项目而采用的一种通用开发流程。GitLab Flow的核心思想是建立在Git分支模型及管理实践的基础上,结合GitLab的功能,以实现团队协同开发、自动化测试和持续集成和持续部署(CI/CD)。其目标是提供一种简化、可伸缩和可维护的开发流程,以便团队可以更频繁地交付高质量的软件。它强调了代码审查、自动化测试和持续集成,以确保代码的稳定性和可靠性。

威哥Wego的专栏 4156

AMD 3D V-Cache技术解析:CPU缓存堆叠如何突破性能瓶颈

在半导体领域,缓存(Cache)是提升处理器性能的关键技术,其核心原理是在高速CPU核心与慢速主存之间建立数据中转站,以缓解“内存墙”问题。随着摩尔定律放缓,传统平面扩展缓存面临面积成本高、延迟增加等挑战。3D封装技术应运而生,通过垂直堆叠实现极致的互联密度与带宽,成为突破性能瓶颈的重要工程路径。这项技术的价值在于能以更优的功耗和延迟,显著提升缓存容量,从而改善游戏、科学计算等数据密集型应用的性能。以AMD 3D V-Cache为代表的Hybrid Bonding(混合键合)工艺,正是这一趋势的典型实践,它

weixin_30432579的博客 415

Git图解:分支管理(二)

Git为我们提供了杀手级的武器之一,分支。通过上一次的博客分享可以知道,我们都是在主分支上操作的,所以说我们操作的都是在一条分支上操作,对应着只有⼀条时间线。我们在master分支上也能直接操作,为什么还要有分支?首页要遵守一个原则:master主分支上的代码要求是稳定的!

qq_63159859的博客 2690

82、yolov11检测模型迁移瑞芯微rk3588和使用昇腾设备300i DUO卡推理 batch=1/3,支持昇腾NMS迁移npu推理

本文介绍了使用昇腾设备进行分割推理的测试流程,包括两种测试方式(cann+onnx和om)。首先验证300iDUO卡的可用性,随后创建Docker镜像和容器以搭建独立环境。通过从指定仓库拉取Ubuntu 20.04镜像,创建容器并映射目录。进入容器后安装必要组件(Python3、GCC等)和系统工具(pciutils、net-tools等),为后续模型转换和迁移做准备。整个流程旨在构建可交付给第三方的标准化测试环境。

sxj731533730 1198

Intellij IDEA 使用教程(一)Jdk安装和配置

一.JDK下载 这里下载的是Java SE 8u181 64位版本。可以根据自己电脑配置来选择不同版本。 官网下载JDK 二.安装JDK 双击运行jdk-8u181-windows-x64.exe安装程序 选择安装目录,然后点击下一步 等待安装 安装JRE,就是java的运行环境,可以安装在java目录下 等待安装 安装完成。点击关闭。 三.java环境变量配置 关于环境变量的配置,...

岁月不饶人,我亦未曾饶过岁月 4052

经典的Git进行源代码管理的分支模型

本文介绍一种使用Git进行源代码管理的分支模型,着重于如何使用Git更好的管理我们的源代码。 我假定您对Git有一定了解,会使用基本的Git命令进行一些简单的源代码管理工作。这不是一篇Git使用教程。 文章的主要思想源自以下链接: http://nvie.com/posts/a-successful-git-branching-model/ 根据自己的使用情况进行了补充。

风驰飘云 783

【Apache Paimon】-- 13 -- 利用 paimon-flink-action 同步 mysql 表数据

在Paimon 诞生以前,若 mysql/pg 等数据源的表结构发生变化时,我们有几种处理方式(1)人工通知(比如常规的使用邮件),然后运维人员手动同步到数据仓库中(2)使用 flink 消费 DDL binlog ,然后自动更新 Hive 的外部表和内部表 schema那么现在,有了 Paimon ,我们可以利用其特性,自动识别并同步 DDL 这些变化,并同步至 hive 的 paimon 格式表中。

欢迎来到我的博客,一起探索代码里的世界! 1248

GIT - 代码分支管理模型之二

书接上文 在前一篇文章GIT 代码分支管理模型之一中,我们一起了解了一种叫做“成功的代码分支管理模型”。在这种模型中,我们确实可以很灵活地应对各种场景下的代码分支管理。 理想总是那么美好,而现实偏偏那么蛋疼! 要用好这种代码分支管理模型,需要全体开发人员对于GIT有比较深入的了解,比如merge, rebase,而且在每一次GIT的操作的时候要很清楚地知道自己正在开发的功能属于哪个分支的。对于...

二牛的博客 3880

华为OD机考双机位C卷:精准核酸检测 (C/C++/Py/Java/Js/Go)

华为OD机试双机位C卷 精准核酸检测,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试 - 精准核酸检测。

qq_45776114的博客 1726

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Git代码分支管理规范

git管理规范,可根据情况选择一个合适当前系统的分支管理规范进行代码管理

爱好技术的小老头 1880

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Git 分支管理:高效协作与代码版本控制的核心

在软件开发中,分支 是 Git 的核心功能之一。通过分支,开发者可以在同一项目中并行处理多个功能或修复,而不会相互干扰。这种灵活性让分支成为高效协作和版本控制的关键工具。本篇文章将介绍 Git 分支的基础知识、常见操作以及分支管理的最佳实践,帮助开发者更好地组织和管理代码。

927

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Git分支模型

转自:http://www.cnblogs.com/byeyear/archive/2012/11/28/2793374.html   本文介绍一种使用Git进行源代码管理的分支模型,着重于如何使用Git更好的管理我们的源代码。 我假定您对Git有一定了解,会使用基本的Git命令进行一些简单的源代码管理工作。这不是一篇Git使用教程。 文章的主要思想源自以下链接: http://nvie...

weixin_34162629的博客 84

git分支模型

例如,如果在生产环境中发现了问题,可以通过版本标签快速定位到特定的代码状态,从而加快问题诊断和修复的速度。这种模型通过精心设计的分支结构和工作流程,为复杂的软件项目提供了强有力的版本控制和支持。GitLab Flow模型是GitLab提出的一种灵活的分支管理策略,巧妙地结合了环境分支和功能分支的概念。在Git分支管理中,合并策略的选择直接影响代码集成的质量和效率。尽管如此,对于那些能够有效管理风险并严格遵守开发流程的团队来说,主干开发模式仍然是一种极具吸引力的选择,尤其适合需要快速迭代和持续交付的项目。

2401_86544677的博客 991

git idea 分支合并到另一个分支_一个 Git 分支协作模式的进化故事

​本文囊括2076字Git 作为一个强大的分布式版本控制系统,对比 SVN、CVS 等版本控制系统,其架构和设计在研发管理和协作上有着极大的优势。在个人开发的代码管理和团队协作过程中,合理使用分支能在极大程度上提升管理效率。这篇文章根据张三、李四、赵六开发成长历程改编,解读了在企业开发过程中进行协作开发的分支模型。从不用版本管理 到 使用 Git分支管理的故事,也就是从这个时候开始的。。。 ...

weixin_31455121的博客 1060

Git分支模型:较为标准的模型使用流程分析

本文介绍一种使用Git进行源代码管理的分支模型,着重于如何使用Git更好的管理我们的源代码。 我假定您对Git有一定了解,会使用基本的Git命令进行一些简单的源代码管理工作。这不是一篇Git使用教程。 文章的主要思想源自以下链接: http://nvie.com/posts/a-successful-git-branching-model/ 根据自己的使用情况进行了补充。 我们知道Git...

技术架构公社 390

git分支指的是_你一定知道的Git分支模型

原标题:你一定知道的Git分支模型 写在前面本文不是一篇Git入门指南,也不是 Git命令行使用技巧的讲解,而是谈谈作者在过往工作中使用的几种代码版本管理工具的一些体会,同时重点讲解一下Git的分支模型。注:本文中涉及到的 片均来源于互联网背景谈论到代码版本控制,相信大家在项目开发过程中或多或少都有使用过 SVN 和 Git。对代码的更新、提交、合并等操作都非常的熟悉,但是许多人对如何在项目中选择...

weixin_39645041的博客 195
上一篇: GIT - 关于文件处理的两个问题
下一篇: GIT - 代码分支管理模型之二
notechsolution
博客等级 码龄11年 27粉丝 26原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值