关于Git flow的问题

我参考了“饿了么(优雅的兄弟们)开发博客”的内容来创建。

1. 解釋定义

在推进项目时,采用了将分支管理与不同分支的角色区分开来的概念,以此来进行有效的分支管理。

git-flow_overall_graph.png

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流熱修繕