服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - 编程技术 - Git版本管理总有问题,建议使用Git Flow

Git版本管理总有问题,建议使用Git Flow

2020-11-23 23:12今日头条低调的干货君 编程技术

Git 是用于 Linux内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。

Git版本管理总有问题,建议使用Git Flow

Git 是用于 Linux内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。

当前各大公司对软件源码的版本管理都采用git来管理,因此git的使用必不可少,在一些项目开发中,可能存在git使用流程的不合理,导致代码版本管理混乱,容易造成代码冲突,甚至带来线上bug等,因此一旦当我们的项目在git管理后仍然存在很多问题的时候,就可以考虑采用git flow的标准流程。

什么是git flow

Git Flow 其实是一种规范化分支管理模型的方案。他的出现是在Vincent Driessen 曾经写过一篇博文,题为“A successful Git branching model”。

我们先来看一下Vincent Driessen提出的git flow流程图

Git版本管理总有问题,建议使用Git Flow

上图中,有几个分支,他们的作用如下:

master 分支:用于生产环境的分支,这个分支只能从其他分支合并代码,不允许直接修改。

hotfix 分支:当生产环境发现线上的 bug 的时候,则需要创建一个 hotfix,修复bug完成 后,将hitfix分支合并回 master 和 develop 分支。

release 分支:用于测试环境分支,当develop 分支完成后,则将develop合并到 release 分支提测。测试中的 bug ,在release分支修复,bug修复通过后,再合并release分支到 master 和 develop 分支。

develop 分支:开发环境分支,用于拉出一个一个 feture 分支进行新功能开发。

feature 分支:该分支主要是用来开发一个新的功能,一般从 develop 分支拉取,开发完成合并到 develop。

那么git flow怎么使用呢?

git flow中master 和 develop 分支是长期存在的分支,都需要保证稳定性。

如果有新功能需要开发,则基于 develop 拉取 feature 分支进行开发,开发完成后,合并到 develop 分支,并删除 feature 分支。

功能开发完成后,进行提测,基于 develop 分支拉去 release 进行提测。如果提测中发现的 bug,在 release 分支进行修复,测试通过后,将 release 分支合并到 develop 分支和 master 分支。

最后在 master 分支上打标签用于发布,并删除 release 分支。若后续线上发现 bug,则基于 master 拉取 hotfix 分支,问题在 hotfix 分支上修复完成后,将 hotfix 分支合并到 master 分支和 develop 分支。

git flow工具

由于上述过程非常标准,同时又有一定的繁琐,如果团队成员都非常遵守约定,可以做一些调整和简化;如果有些团队成员约定性不是很强,我们可以采用git flow工具来强制项目使用git flow标准流程。

git flow工具:http://danielkummer.github.io/git-flow-cheatsheet/

大家可以按照官网地址进行操作,与git 无异,本文只做简单介绍,git flow中的命令如下图

Git版本管理总有问题,建议使用Git Flow

Git版本管理总有问题,建议使用Git Flow

Git版本管理总有问题,建议使用Git Flow

Git版本管理总有问题,建议使用Git Flow

Git版本管理总有问题,建议使用Git Flow

Git版本管理总有问题,建议使用Git Flow

Git版本管理总有问题,建议使用Git Flow

命令汇总如下:

Git版本管理总有问题,建议使用Git Flow

最后,适合的才是最好的,不要任何时候都直接采用git flow,毕竟流程还是相对复杂一些的。

延伸 · 阅读

精彩推荐
  • 编程技术简单、好懂的Svelte实现原理

    简单、好懂的Svelte实现原理

    本文会围绕一张流程图和两个Demo讲解,正确的食用方式是用电脑打开本文,跟着流程图、Demo一边看、一边敲、一边学...

    魔术师卡颂4822021-11-10
  • 编程技术用户态 Tcpdump 如何实现抓到内核网络包的?

    用户态 Tcpdump 如何实现抓到内核网络包的?

    在网络包的发送和接收过程中,绝大部分的工作都是在内核态完成的。那么问题来了,我们常用的运行在用户态的程序 tcpdump 是那如何实现抓到内核态的包...

    开发内功修炼11612021-09-08
  • 编程技术从Context源码实现谈React性能优化

    从Context源码实现谈React性能优化

    这篇文章主要介绍Context的实现原理,源码层面掌握React组件的render时机,从而写出高性能的React组件,源码层面了解shouldComponentUpdate、React.memo、PureComponen...

    魔术师卡颂5312020-12-20
  • 编程技术Delphi - Indy idMessage和idSMTP实现邮件的发送

    Delphi - Indy idMessage和idSMTP实现邮件的发送

    这篇文章主要介绍了Delphi - Indy idMessage和idSMTP实现邮件的发送,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...

    JJ_JeremyWu6592020-09-22
  • 编程技术AIOps,SRE工程师手中的利器

    AIOps,SRE工程师手中的利器

    AIOps开始成为一种极为重要的站点可靠性工程工具。它能够高效吸纳观察数据、参与数据以及来自第三方工具的数据,判断系统运行状态并保证其处于最佳...

    至顶网5962021-03-08
  • 编程技术让开发效率倍增的 VS Code 插件

    让开发效率倍增的 VS Code 插件

    今天来分享一些提升开发效率的实用 VS Code 插件!Better Comments 扩展可以帮助我们在代码中创建更人性化的注释,有不同形式和颜色的注释供我们选择。 ...

    前端充电宝7132022-04-21
  • 编程技术真正聪明的程序员,总有办法不加班

    真正聪明的程序员,总有办法不加班

    工作效率提升了,就可以少加班了,聪明的程序员,总会有一堆可以提升编码效率的工具?当一种工具满足不了工作需求,就去探索新的,今天纬小创就给...

    今日头条12482021-03-04
  • 编程技术2021年值得关注的React PDF 库

    2021年值得关注的React PDF 库

    今天,许多网络应用程序为其用户提供内置的PDF浏览选项。然而,选择一个并不容易,因为它们的功能远远超过显示PDF。在这篇文章中,我将评估5个React的...

    TianTianUp5222021-06-21