关于Git flow的问题
我参考了“饿了么(优雅的兄弟们)开发博客”的内容来创建。
1. 解釋定义
在推进项目时,采用了将分支管理与不同分支的角色区分开来的概念,以此来进行有效的分支管理。
3.分支的作用
1)发展
develop分支是与开发相关的分支,正如其名称所示。开发工作在develop分支上进行,所有一般的开发工作都在这里完成。
2)特色
特点分支是从develop分支派生出来的分支。特点分支可以被视为develop开发的小单位,但也可以视为用于开发特定功能/函数等的大型分支,其大小取决于用户的需求。
换言之,基本开发可以在功能分支上进行,而将相关功能整合以解决瓶颈问题的则可视为develop分支。
在每个功能独立开发的时候,创建一个特性分支来进行功能开发。当对应功能的开发完成后,将其合并到develop分支上,通过在develop分支上解决与其他特性之间的瓶颈问题和错误来推进。
发布
发布分支是项目开发完成并推进分发过程的分支。 在该分支上,会进行重要的发布说明书的编写、文档编写等以及准备发布版本的准备工作。
4)师傅/主要的
主分支或主要分支是保存发布版本内容的分支。在该分支上打上标签以显示发布版本,并可以立即跟踪该版本的进展。
5) 热修复
如果在将补丁分发到主分支之后出现了意外的错误,那么将从主分支派生出一个热补丁分支。
熱修補程式(hotfix)一詞,通常指的是當發現嚴重的安全漏洞或可能導致業務損失的錯誤,也就是必須立即修復的錯誤時所使用的分支。
在开发分支上先确认并修复这类错误,最迟在发布分支之前再次通过最终检查确保不会发生错误。
因此,由於我們無法完全假設這樣的錯誤絕對不會發生,所以如果發生了,我們必須立即通過hotfix分支迅速解決。
6)修复漏洞
尽管上述图中没有提到,但gitflow系统中存在一个分支,即bugfix分支。它与hotfix分支的内容几乎相似,不同之处在于bugfix分支不是从master/main分支派生,而是从develop分支派生。
简而言之,我们在develop分支上合并了功能,并进行了开发。但是,由于合并错误的代码,或者合并了各种功能而可能出现的错误,我们通过这个bugfix分支来解决。
这个分支的优先级比热修复低,是因为它是在开发过程中发生的错误,而不是立即分发的。
3.操作步骤
git flow init是一个命令,用于应用gitflow管理模式。若要应用最基本的设置,可通过使用-d选项。这样做既方便使用,分支名称也更直观。若不使用-d选项,则需要手动为各个角色的分支命名。
执行git flow init-d即可,通常情况下会自动切换到develop分支。可以看到存在着master/main分支和develop分支。
开始使用功能分支来进行各功能的开发。
功能分支开始
Git流功能开始
将特性分支合并/删除到develop分支。
完成Git流特性
同步功能分支到远程仓库。
将git flow feature publish的功能转为中文原生语言。
只需一个选项,以自然的中文方式改写如下所示:操作方式与之前相同。只需在“name”>部分输入您喜欢的分支名称即可。通常,我们会为要在相关功能中进行开发的简单关键字命名。
发布关键字是一个命令,类似于将分支推送到远程仓库的过程。然而,在执行发布时,当前项目必须没有任何未完成的修改事项。
- 发布分支
让我们为每个功能开发完成后,尝试创建一个发布分支来进行分发。
发布分支开始
开始 Git Flow 发布
#发布分支完成
可以使用”git flow release finish”命令来完成与”feature branch”类似的操作。
在这种情况下,”name”参数通常用来指明要发布的版本。
- 热补丁分支 (rè
#热修复分支开始
开始 git flow 热修复
熱修分支结束
完成热修复的git流程
热修复类似于发布分支,名称部分明确指明了版本。由于需要快速修复错误并重新发布,因此会生成新的版本。
- 修复分支
#热补丁分支开始运行
开始Git Flow的热修复
#热修补分支已结束
完成git流熱修繕