显卡|5 个 Git 工作流,改善你的开发流程

文章图片

文章图片

原文地址:5 Git workflows you can use to deliver better code and improve your development process
原文作者:Vikash Koushik
译者:陈元
校对者:HelloGitHub-丫丫
我还没有遇到过一个开发人员 , 在查看 Git 分支合并的冲突信息时不抓耳挠腮 。
解决 Git 合并冲突是每个开发人员都讨厌的事情之一 , 尤其是当你准备进行生产环境部署时!
正确的设置 Git 工作流可以改善你的 开发流程 。
当然 , 拥有正确的 Git 工作流并不能解决你的所有问题 。 但这是朝正确方向迈出的一步 。 毕竟 , 由于每个团队都是远程工作的 , 在不破坏代码库的情况下共同开发产品功能是非常重要的 。
如何设置 Git 工作流取决于你正在开发的项目、团队的发布计划、团队的规模等等!
在本文中 , 我们将向你介绍 5 种不同的 Git 工作流 , 它们的优点 , 缺点以及使用它们的时机 。 让我们开始吧!
1. 基本的 Git 工作流最基本的 Git 工作流是只有一个分支 - master 分支的模式 。 开发人员直接提交 master 分支并使用它来部署到预发布和生产环境 。
上图为基本的 Git 工作流 , 所有提交都直接添加到 master 分支 。
通常不建议使用此工作流 , 除非你正在开发一个 side 项目并且希望快速开始 。
由于只有一个分支 , 因此这里实际上没有任何流程 。 这样一来 , 你就可以轻松开始使用 Git 。 但是 , 使用此工作流时需要记住它的一些缺点:
- 在代码上进行协作将导致多种冲突 。
- 生产环境出现 bug 的概率会大增 。
- 维护干净的代码将更加困难 。
假设你有一个正在开发一项新功能的开发人员 。 另一个开发人员正在开发第二个功能 。 现在 , 如果两个开发人员都向同一个分支提交代码 , 这将使代码库陷入混乱 , 并产生大量冲突 。
上图为具有功能分支的 Git 工作流模型 。
为避免这种情况 , 两个开发人员可以分别从 master 分支创建两个单独的分支 , 并分别开发其负责的功能 。 完成功能后 , 他们可以将各自的分支合并到 master 分支 , 然后进行部署 , 而不必等待对方的功能开发完成 。
使用此工作流的优点是 , Git 功能分支工作流使你可以在代码上进行协作 , 而不必担心代码冲突 。
3. 带有 Develop 分支的 Git 功能分支工作流此工作流是开发团队中比较流行的工作流之一 。 它与 Git 功能分支工作流相似 , 但它的 develop 分支与 master 分支并行存在 。
在此工作流中 , master 分支始终代表生产环境的状态 。 每当团队想要部署代码到生产环境时 , 他们都会部署 master 分支 。
Develop 分支代表针对下一版本的最新交付的代码 。 开发人员从 develop 分支创建新分支 , 并开发新功能 。 功能开发完毕后 , 将对其进行测试 , 与 develop 分支合并 , 在合并了其他功能分支的情况下使用 develop 分支的代码进行测试 , 然后与 master 分支合并 。
上图为具有 develop 分支的 Git 功能分支工作流模型 。
此工作流的优点是 , 它使团队能够一致地合并所有新功能 , 在预发布阶段对其进行测试并部署到生产环境中 。 尽管这种工作流让代码维护变得更加容易 , 但是对于某些团队来说 , 这样做可能会感到有些疲倦 , 因为频繁的 Git 操作可能会让你感到乏味 。
4. Gitflow 工作流Gitflow 工作流与我们之前讨论的工作流非常相似 , 我们将它们与其他两个分支( release 分支和 hot-fix 分支)结合使用 。
4.1 Hot-Fix 分支Hot-fix 分支是唯一一个从 master 分支创建的分支 , 并且直接合并到 master 分支而不是 develop 分支 。 仅在必须快速修复生产环境问题时使用 。 该分支的一个优点是 , 它使你可以快速修复并部署生产环境的问题 , 而无需中断其他人的工作流 , 也不必等待下一个发布周期 。
将修复合并到 master 分支并进行部署后 , 应将其合并到 develop 和当前的 release 分支中 。 这样做是为了确保任何从 develop 分支创建新功能分支的人都具有最新代码 。
4.2 Release 分支在将所有准备发布的功能的代码成功合并到 develop 分支之后 , 就可以从 develop 分支创建 release 分支了 。
Release 分支不包含新功能相关的代码 。 仅将与发布相关的代码添加到 release 分支 。 例如 , 与此版本相关的文档 , 错误修复和其他关联任务才能添加到此分支 。
一旦将此分支与 master 分支合并并部署到生产环境后 , 它也将被合并回 develop 分支中 , 以便之后从 develop 分支创建新功能分支时 , 新的分支能够具有最新代码 。
上图为具有 hot-fix 和 release 分支的 Gitflow 工作流模型
此工作流由 Vincent Driessen首次发布并广受欢迎 , 已被具有预定发布周期的组织广泛使用 。
由于 git-flow 是对 Git 的包装 , 因此你可以为当前代码库安装 git-flow 。 git-flow 非常简单 , 除了为你创建分支外 , 它不会更改代码库中的任何内容 。
要在 Mac 机器上安装, 请在终端中执行 brew install git-flow。
要在 Windows 机器上安装 , 你需要 下载并安装 git-flow 。 安装完成后 , 运行 git flow init 命令 , 就可以在项目中使用它了 。
5. Git Fork 工作流Fork 工作流在使用开源软件的团队中很流行 。
该流程通常如下所示:
- 开发人员 fork 开源软件的官方代码库 。 在他们的帐户中创建此代码库的副本 。
- 然后 , 开发人员将代码库从其账户克隆到本地系统 。
- 官方代码库的远端源已添加到克隆到本地系统的代码库中 。
- 开发人员创建一个新的功能分支 , 该分支将在其本地系统中创建 , 进行更改并提交 。
- 这些更改以及分支将被推送到其帐户上开发人员的代码库副本 。
- 从该新功能分支创建一个 pull request , 提交到官方代码库 。
- 官方代码库的维护者检查 pull request 中的修改并批准将这些修改合并到官方代码库中 。
【显卡|5 个 Git 工作流,改善你的开发流程】翻译开源项目文档、文章都是为开源社区做贡献(题材:GitHub、编程、程序员) , 欢迎热爱技术和开源的小伙伴加入 HG 推出的译文亦舞系列的翻译中来 。
推荐阅读
- 喝酒|长期喝酒者,早起后,若有这5个表现,你得考虑戒酒保肝了!
- 君子兰|君子兰怎么养:君子兰哪个品种最贵,短叶油匠高达9999万元
- 教你做虎皮蛋糕上的虎皮,掌握2个技巧,保证起虎皮,做法很简单
- 一碗糯米,半个南瓜,香甜软糯,好吃不上火,比南瓜饼香,太好吃
- 猪身上一个部位,无筋无骨不塞牙,比排骨受欢迎,上桌立马被抢光
- 红豆和玉米面是绝配,一个做皮一个做馅,包好入锅一蒸,特香
- 晒晒我家一周的晚餐,每天3个菜,每天都不重样,老公直夸真贤惠
- 糖尿病|这根血管堵了,离死亡最近!三个预警信号,糖尿病患者尤其要注意!
- 初中生物|干货|初中生物:不得不记的50个核心概念,初一初二赶紧收藏!
- 第一次用它来包饺子,超乎想象的好吃,皮薄大馅,个顶个的鲜
