Git工作流(随笔)

这篇具有很好参考价值的文章主要介绍了Git工作流(随笔)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

一、工作流概述

1、概念

2、分类

二、集中式工作流

1、概述

2、介绍

3、操作过程

三、功能分支工作流

1、概述

2、介绍

3、操作过程

1)创建远程分支

2)删除远程分支

四、GitFlow工作流

1、概述

2、介绍

 

3、操作过程

五、Forking工作流

1、概述

2、介绍

3、操作过程

扩展

Pull Requests

总结


前言

Git工作流是指在团队中使用Git进行协作开发时,各个成员遵循的一套代码管理和版本控制的规范流程

一、工作流概述

1、概念

通俗的讲,GIt工作流指的是代码管理的工作流程和方式。在实际的工作中,根据不同的场景,使用不同的工作流方式。

2、分类

  1. 集中式工作流
  2. 功能分支工作流
  3. GitFlow工作流
  4. Forking工作流

二、集中式工作流

1、概述

集中式系统中通常使用的是单点协作模型——集中式工作流。 一个中心集线器,或者说 仓库,可以接受代码,所有人将自己的工作与之同步。 若干个开发者则作为节点,即中心仓库的消费者与中心仓库同步。

2、介绍

所有成员都将代码推送到同一个远程仓库中,通常由一个主要的分支(如master)作为代码的主线。这作流适用于小型团队或个人项目,操作简单,但缺乏灵活性。

Git工作流(随笔)

 如果两个开发者从中心仓库克隆代码下来,同时作了一些修改,那么只有第一个开发者可以顺利地把数据推送回共享服务器。 第二个开发者在推送修改之前,必须先将第一个人的工作合并进来,这样才不会覆盖第一个人的修改。 这和 Subversion (或任何 CVCS)中的概念一样,而且这个模式也可以很好地运用到 Git 中。

3、操作过程

  1. 项目维护者推送到主仓库。
  2. 添加仓库成员
  3. 贡献者克隆此仓库,做出修改。
  4. 贡献者将数据推送到仓库。

三、功能分支工作流

1、概述

功能分支工作流背后的核心思路是所有的功能开发应该在一个专门的分支,而不是在 master 分支上。这个隔离可以方便多个开发者在各自的功能上开发而不会弄乱主干代码。另外,也保证了 master 分支的代码一定不会是有问题的,极大有利于集成环境。

2、介绍

每个功能或任务都在自己的分支上进行开发,当完成后再将分支合并到主分支上。这作流适用于大型团队或复杂项目,可以更好地管理代码的版本和变化。

Git工作流(随笔)

功能开发隔离也让 pull requests 工作流成功可能,pull requests 工作流能为每个分支发起一个讨论,在分支合入正式项目之前,给其它开发者有表示赞同的机会。另外,如果你在功能开发中有问题卡住了,可以开一个 pull requests 来向同学们征求建议。这些做法的重点就是,pull requests 让团队成员之间互相评论工作变成非常方便!

3、操作过程

  1. 项目维护者推送到主仓库。
  2. 添加仓库成员
  3. 贡献者克隆此仓库,在每次开始新功能前先创建一个功能分支,并实现相关的操作。
  4. 贡献者将数据推送到自己的仓库,并发起pull requests,请求合并
  5. 维护者在自己本地的仓库中,将贡献者的仓库加为远程仓库并合并修改。
  6. 维护者将合并后的修改推送到主仓库。

 功能分支除了可以隔离功能的开发,也使得通过 Pull Requests 讨论变更成为可能。一旦某个开发完成一个功能,不是立即合并到 master,而是 push 到中央仓库的功能分支上并发起一个 Pull Request 请求去合并修改到 master。在修改成为主干代码前,这让其它的开发者有机会先去 Review 变更。

1)创建远程分支

即,在本机上创建分支,然后再推送到远程主机

# 基于指定的本地分支来创建的远程分支
$ git push <远程主机名> 本地分支名称:远程分支名称

# 基于master,创建远程分支testing
$ git push origin master:testing

2)删除远程分支

$ git push <远端> :远程分支名称
$ git push <远端> --delete 远程分支名称

$ git push yaya :test02
$ git push yaya --delete test02

四、GitFlow工作流

1、概述

GitFlow 工作流定义了一个围绕项目发布的严格分支模型。虽然比功能分支工作流复杂几分,但提供了用于一个健壮的用于管理大型项目的框架。

2、介绍

GitFlow 工作流:该工作流程在功能分支工作流的基础上增加了发布分支和维护分支。发布分支用于准备发布版本,维护分支用于修复生产环境中的bug。该工作流适用于需要频繁发布版本的项目。

Git工作流(随笔)

GitFlow 工作流没有用超出功能分支工作流的概念和命令,而是为不同的分支分配一个很明确的角色,并定义分支之间如何和什么时候进行交互。除了使用功能分支,在做准备、维护和记录发布也使用各自的分支。当然你可以用上功能分支工作流所有的好处:Pull Requests、隔离实验性开发和更高效的协作。

以下是不同分支的命名规范:

Git工作流(随笔)

3、操作过程

  1. 项目维护者推送到主仓库。
  2. 添加仓库成员
  3. 贡献者克隆此仓库,在每次开始新功能前先创建一个功能分支,并实现相关的操作。
  4. 贡献者将数据推送到自己的仓库,并发起pull requests,请求合并
  5. 维护者在自己本地的仓库中,将贡献者的仓库加为远程仓库并合并修改。
  6. 维护者将合并后的修改推送到主仓库。

五、Forking工作流

1、概述

Forking 工作流和前面讨论的几种工作流有根本的不同。这种工作流不是使用单个服务端仓库作为『中央』代码基线,而让各个开发者都有一个服务端仓库。这意味着各个代码贡献者有 2 个 Git 仓库而不是 1 个:一个本地私有的,另一个服务端公开的。

2、介绍

Forking工作流:每个开发者都从远程仓库中fork一个副本,并在自己的副本上进行开发。当开发完成后,通过pull request向原仓库提交代码。这作流适用于开源项目或跨组织合作的项目。

Git工作流(随笔)

Forking 工作流的一个主要优势是,贡献的代码可以被集成,而不需要所有人都能 push 代码到仅有的中央仓库中。开发者 push 到自己的服务端仓库,而只有项目维护者才能 push 到正式仓库。这样项目维护者可以接受任何开发者的提交,但无需给他正式代码库的写权限。 

效果就是一个分布式的工作流,能为大型、自发性的团队(包括了不受信的第三方)提供灵活的方式来安全的协作。也让这个工作流成为开源项目的理想工作流。

3、操作过程

  1. 项目维护者推送到主仓库。
  2. 添加仓库成员
  3. 贡献者克隆(Forking)此仓库,做出修改。
  4. 贡献者将数据推送到自己的公开仓库。
  5. 贡献者给维护者发送邮件,请求拉取自己的更新。
  6. 维护者在自己本地的仓库中,将贡献者的仓库加为远程仓库并合并修改。
  7. 维护者将合并后的修改推送到主仓库。

扩展

Pull Requests

"Pull Request 是一种通知机制。你修改了他人的代码,将你的修改通知原来的作者,希望他合并你的修改,这就是 Pull Request。"

Pull Request 本质上是一种软件的合作方式,是将涉及不同功能的代码,纳入主干的一种流程。这个过程中,还可以进行讨论、审核和修改代码

 Pull Request  可以和功能分支工作流、GitFlow 工作流或 Forking 工作流一起使用。但 Pull Request 要求要么分支不同,要么仓库不同,所以不能用于集中式工作流。在不同的工作流中使用 Pull Request 会有一些不同,但基本的过程是这样的:

  1. 开发者在本地仓库中新建一个专门的分支开发功能。
  2. 开发者 push 分支修改到公开的 Bitbucket 仓库中。
  3. 开发者通过 Bitbucket 发起一个 Pull Request
  4. 团队的其它成员 review code,讨论并修改。
  5. 项目维护者合并功能到官方仓库中并关闭 Pull Request

总结

以上几种Git工作流各有优缺点,选择适合自己的工作流需要根据项目的规模、团队人数、开发方式等因素进行考虑,然后选择合适的!文章来源地址https://www.toymoban.com/news/detail-488760.html

到了这里,关于Git工作流(随笔)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 工作中如何打造优雅的Git工作流和Commit规范!

    前言 🤓Git大家都非常熟悉了,就不做过多介绍,但是如何用好Git、如何进行合理的分支开发、Merge你是否有一个规范流程呢?💤 不论是一个团队一起开发一个项目,还是自己独立开发一个项目,都少不了要和Git打交道,这些都是作为开发者必须要掌握的。每个团队也许有自

    2024年01月21日
    浏览(47)
  • 一步到位!快速精通Git工作流及实战技巧详解

    Git是一个分布式版本控制系统。 1.备份 小明负责的模块就要完成了,就在即将release之前的一瞬间,电脑突然蓝屏。硬盘光荣牺牲!几个月来的努力付之东流。 场景二:代码还原 这个项目中需要一个很复杂的功能,老王摸索了一个星期终于有眉目了,可是这被改得面目全非的

    2024年03月15日
    浏览(66)
  • Git之GitFlow工作流 | Gitflow Workflow(万字整理,已是最详)

    目录 🩸 写在前面 一、 GitFlow 介绍 1.1 什么是 GitFlow 1.2 GitFlow 常用分支说明 1.3 Git flow中的分支介绍 1.3.1 主要分支(Master) 1.3.2 开发分支(Develop) 1.3.3 功能分支(Feature) 1.3.4 预发分支(Release) 1.3.5 热修复分支(Hotfix) 1.4 GitFlow 工作流程 二、GitFlow 实践 2.1 创建 develop 分支

    2024年02月17日
    浏览(41)
  • github使用workflow工作流git push后自动打包部署github pages

    根目录新建.github/workflows/docs.yml .github/workflows/ 目录是用于存放 GitHub Actions 工作流程文件的目录,该目录的文件名必须以 .yml 或 .yaml 为后缀名,否则 GitHub 将无法识别该文件为工作流程文件。这些工作流程文件可用于自动化执行项目中的各种任务,例如构建、测试、部署等。

    2024年02月10日
    浏览(53)
  • 【工作流】Activiti工作流简介以及Spring Boot 集成 Activiti7

    什么是工作流? 工作流指通过计算机对业务流程进行自动化管理,实现多个参与者按照预定义的流程去自动执行业务流程。 文章源码托管:https://github.com/OUYANGSIHAI/Activiti-learninig Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理、

    2024年02月08日
    浏览(52)
  • 云原生离线工作流编排利器 -- 分布式工作流 Argo 集群

    作者:庄宇 在现代的软件开发和数据处理领域,批处理作业(Batch)扮演着重要的角色。它们通常用于数据处理,仿真计算,科学计算等领域,往往需要大规模的计算资源。随着云计算的兴起,阿里云批量计算和 AWS Batch 等云服务提供了管理和运行这些批处理作业的平台。 随

    2024年01月24日
    浏览(84)
  • Camunda 7工作流引擎 API 以及与Springboot集成实现工作流配置全纪录

    项目中需要用到工作流引擎来设计部分业务流程,框架选型最终选择了 Camunda7,关于 Camunda以及 Activity 等其他工作流 引擎的介绍及对比不再介绍,这里只介绍与现有Springboot项目的集成以及具体使用及配置 流程(PROCESS): 通过工具建模最终生成的BPMN文件,里面有整个流程的定

    2024年02月10日
    浏览(58)
  • 云计算工作流调度

    阅读笔记 首先,我们提出了一个更实用的混合云服务流程成本驱动调度模型,该模型在不降低VM部署弹性的情况下更精确地定义资源约束,并考虑了基于间隔的综合收费,包括计费周期和持续使用折扣。 其次,提出了一种改进的基于FWA(烟花算法)的方法来解决这一问题。在

    2024年02月02日
    浏览(70)
  • Activity工作流引擎

    目录 一、了解工作流 1、什么是工作流 2、工作流引擎 3、常见工作流引擎 4、Activiti7概述 4.1、Activiti介绍 4.2、建模语言BPMN 4.3、Activiti使用流程 二、Activiti7 1、Activiti使用 1.1、数据库支持 1.2、Activiti环境 1.3、Activiti常用Service服务接口 1.4、流程设计工具 2、Activiti流程操作 2.1、

    2024年02月13日
    浏览(48)
  • Activiti 工作流简介

    1、什么是工作流         工作流(Workflow),就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。 1.2、工作流系统   

    2024年02月04日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包