Git Flow困境逃脱指南

本来来自极狐GitLab 资源中心,原文链接:https://resources.gitlab.cn/articles/020183ba-cfc0-4917-b901-248acdcfc92f。

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLabhttps://gitlab.cn/install?channel=content\&utm_source=csdn 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。

更多关于极狐GitLabhttps://gitlab.cn 或者 DevOps 的最佳实践,可以关注文末的极狐GitLab 公众号。

Git 简化了分支和合并,使得软件开发团队从 SVN 等其他源码控制工具中脱离出来,采用工作流来简化开发。然而,从其他版本控制系统转移到 Git 的组织可能难以确定有效的工作流程。极狐GitLab Flow 通过将 Git 工作流与议题跟踪系统集成,创造了一种无缝的软件开发方法。

有时候,你可能拥有 "过多" 的好东西。Git flow 当然也是如此,这是一个著名的软件开发工作流程,它提供了多种选择,但却会让用户陷入困境。

为了消除容易引起混乱的复杂性、简化开发流程,我们推出了极狐GitLab Flow。极狐GitLab Flow 为 Git 工作引入了议题跟踪功能,简化了流程,消除了混乱。

极狐GitLab 公众号后台回复新手指南获取极狐GitLab 新手指南一份。

Git flow的问题

要想了解极狐GitLab Flow 的工作原理,不妨先看看它试图解决的问题。在 Git flow 中,有两个主要的痛点,都涉及到不必要的分支切换。

Git flow 强制开发者使用develop分支而不是master分支。因为大多数工具都默认使用 master,所以涉及到大量的分支切换。另一个让人烦恼的地方是 hotfix 和release分支,这对大多数组织来说显得过于繁琐,而对实践持续交付(CD)的公司来说则完全没有必要。

这让我们想到了极狐GitLab Flow ------ 一个让一切都变得简单和包容的工作流程。

极狐GitLab Flow:一个简化的分支策略

极狐GitLab Flow 将特性驱动开发和特性分支与议题跟踪相结合。极狐GitLab Flow 将 Git 工作流程与议题跟踪系统整合在一起,提供了一种简单、透明、高效的 Git 工作方式。

极狐GitLab Flow 是一种让代码和议题跟踪器之间的关系更加透明的方式。代码库的每一次修改都是从议题跟踪系统中的一个议题开始的。当你完成编码或想要讨论代码时,你可以打开一个 Merge Request (合并请求)。当代码审核完成后,审核员会将该分支合并到 Master 中。通过使用 GitLab 工作流,团队可以通过将主分支合并到production分支来部署代码,同时可以快速识别生产环境中的代码版本,使他们能够快速识别哪些代码在生产中。在这个工作流程中,提交只流向下游,确保所有的东西在全面的环境中测试。

极狐GitLab Flow 避免了 Git flow 所伴随的发布、标记和合并的额外开销。

简而言之,极狐GitLab Flow:

所有的功能和修正都会先进入 master;

允许production或stable的分支;

错误修复/快速修复补丁是从 master 中拣选(cherry-picked)出来的。

分解软件开发的10个阶段

极狐GitLab Flow 将构思推进到生产阶段的方式,并让每个人都能了解所需信息并提高工作效率。我们确定了开发过程中必须经历的 10 大关键阶段,以使软件能够投入生产。极狐GitLab Flow 可以轻松地支持所有阶段进行核算,同时继续提供开发生命周期的全面可见性。

广义上讲,极狐GitLab Flow 主要分为三个领域:feature (特性)分支、production (生产)分支和release (发布)分支。

feature分支是实际开发工作发生的地方。开发者创建一个针对功能或 bug 修复的分支,并在那里完成所有工作,而不是在 master 分支上。一旦工作完成,开发人员就创建一个 Merge Request (合并请求),将 feature 分支的内容合并到 master 分支。

production分支本质上是一个整体--一个单一的长期运行的生产发布分支,而不是单个分支。可以为每个可部署的版本创建一个标签,以便跟踪这些细节。

最后,如果你向客户发布软件,那么release分支是关键。每发布一个新版本,你都会从master创建一个稳定分支,并决定一个标签。如果你需要做一个补丁发布,一定要拣选(cherry-pick)出关键的 bug 修复,不要直接提交到稳定分支。

遵循准则

想让极狐GitLab Flow 发挥最大的作用?这里有几条准则强调了测试的重要性,即使在CI环境中也是如此。

测试所有的 Commits (提交)。不要等到所有的东西都合并到master分支后才进行测试。每次提交都进行测试,以便在过程中更早发现问题。

在所有的 Commits (提交)上运行一次全部的测试用例,即使你必须并行运行测试。

代码审查\]先于\[合并到master\]。不要指望一周结束前的测试查出所有的问题。随着提交进行代码审核,这样更容易查出问题,其他同事也可以集思广益提出解决办法。 #### 极狐GitLab Flow有什么好处? 极狐GitLab Flow 提供了一种简单、透明、高效的 Git 工作方式。使用极狐GitLab Flow,开发者可以在不同的环境中协作并维护多个版本的软件。极狐GitLab Flow 减少了发布、标记和合并的开销(这是其他类型 Git 工作流程中常见的挑战),创造了一种更简单的代码部署方式。提交流向下游,确保每一行代码都在所有环境中得到测试。任何规模的团队都可以使用极狐GitLab FLow,它具有适应各种需求和挑战的灵活性。

相关推荐
ficker1337 分钟前
git常用命令
git
友莘居士5 小时前
软件研发如何选对方法论?传统计划驱动与敏捷价值驱动的全面对比
devops·敏捷·传统·软件研发方法论
一念一花一世界5 小时前
DevOps实战(4) - 使用Arbess+GitLab+SourceFare实现Java项目自动化部署
gitlab·tiklab·arbess·开源cicd工具·sourcefare
kevin_cat6 小时前
微信群机器人-备份文件发送通知
git·bash·企业微信
赵孝正7 小时前
GitLab 分支管理与 Push 问题全解析
大数据·elasticsearch·gitlab
程序媛Dev9 小时前
50.4k Star!我用这个神器,在五分钟内搭建了一个私有 Git 服务器!
运维·服务器·git
澈轩12 小时前
Git 用得好,下班走得早
git
人间造梦工厂13 小时前
Git Bash 别名
git
画个太阳作晴天18 小时前
解决 Android Studio 中 build 目录已被 Git 跟踪后的忽略问题
git
wjs0401 天前
Git常用的命令
java·git·gitlab