gitlab建立新分支提交,cherry-pick部分更新

news/2024/11/25 21:58:47/

gitlab介绍

  • GitLab是一个基于Git的在线代码托管和协作平台,提供源代码管理、单元测试、CI/CD构建、代码审查等功能。它是一个开放源代码的Git仓库管理系统,使用 Ruby on Rails 构建
  • GitLab 不仅具有自己的 Git 仓库管理系统,还具有很多其他的功能,如审计日志、代码合并、CI/CD流水线、问题跟踪等。它支持公共和私有仓库,可以自己搭建也可以使用 GitLabSaaS服务
  • GitLab使用简单,功能强大,被广泛应用于企业和开源社区。GitLab也提供了丰富的APIWebhooks接口,使得用户可以方便地将GitLab与其他系统进行集成
  • Gitlab 官网提供了 gitlab.comSaaS 服务,用户可以直接注册并使用,但是需要注意的是官网服务是收费的。自部署 Gitlab 则需要用户自己搭建gitlab实例,用户需要下载gitlab的开源代码,然后根据服务器配置和需求进行相应的安装和配置,需要使用者有一定的系统操作和管理经验。自部署gitlab一般是免费的,但需要考虑到运维和维护的成本。一般研发经理或技术leader承担此项工作。

cherry-pick功能介绍

  • pick的意思是“采摘”,cherry的意思是“樱桃”,连在一起就是“摘樱桃”。所以该功能的意思就是“挑拣自己需要的提交”
  • Gitlab cherry-pick是从一个分支中提取单个提交并将其应用于其他分支的操作。这通常用于将特定更改(如修复错误或特定功能)应用于其他分支而不必将所有更改都合并。
  • 通过Gitlab cherry-pick,您可以在另一个分支中应用单个提交。这允许团队成员在需要时将已有的特定修补程序或修复应用于其他分支。
  • 这可使您避免在每个分支中重复更改,从而增强了代码库的可维护性和代码重用性。
  • 要使用Gitlab cherry-pick,您需要了解以下内容:
    • 1.要选择具体提交相应的SHA(ID)
    • 2.使用Gitlab cherry-pick命令将提交引入到其他分支中。
    • 3.检查提交是否已成功应用于目标分支中。

实际操作

首先,你需要在GitLab上新建一个分支。

  1. 打开项目,点击“Branch”按钮,输入新分支名,点击“Create branch”创建一个新分支。

  2. 克隆新分支到本地:

git clone [项目地址]
cd [项目名称]
git checkout -b [新分支名称] origin/[新分支名称]
  1. 找到需要 cherry-pick 的提交,可以使用以下命令查看提交历史:
git log
  1. 执行 cherry-pick 命令,将提交应用到当前分支(新分支):
git cherry-pick [提交ID]
  1. 如果涉及到冲突,需要解决冲突后再提交:
git add [文件名]
git cherry-pick --continue
  1. 如果需要 cherry-pick 多个提交,可以使用以下命令:
git cherry-pick [提交ID1] [提交ID2] ...
  1. cherry-pick 完成后,需要将新分支推送到 GitLab
git push origin [新分支名称]

这样就完成了 cherry-pick 部分更新到新分支的操作。

界面操作

  • 如果不熟悉命令操作,gitlab有操作界面,在界面上操作也很方便

  • 或者直接在Intellij idea之类的可视化集成开发环境的界面里操作,也很方便

  • 下面以一次合并需求和在Intellij idea操作为例,讲解一下。

  • 需求场景:研发的产品基础版已归档和推向市场使用,高级版功能开发还在进行中。高级版的功能开发,各个开发人员提交合并请求,合并到主线。此时市场客户提出一个新需求,我们需要进行代码变动和新增,考虑到系统的稳定性,这么多新功能代码肯定不能直接部署给客户使用,完整的再对整个系统走一遍测试流程,在人力和时间成本上吃不消。所以针对客户的更新部署版本,只是原有基础版功能,加上这个客户提出的新功能,其他功能代码要排除出去。

  • 解决办法:针对基础版归档时间点,单独建立一个新分支作为基础版归档,然后使用 cherry-pick 功能,把客户提出的新功能的开发的代码的提交记录,按照时间顺序,一个个pick到本分支,再一起提交即可。

  • 在主分支,根据归档时间,选择对应的提交记录,右键,建立新分支(因为我已经操作过了,所以这里多了一个分支标志)
    在这里插入图片描述在这里插入图片描述

  • 右下角可以找到新加的分支名称,点击,在弹出框里点击提交Push...,提交新分支到gitlab仓库。
    在这里插入图片描述

  • 推送到仓库后,新分支就建立成功了,可以去cherry-pick提交了,从下往上找,把自己需要的bug修复和某个功能的代码提交,右键,挨个pick即可,如果有代码冲突手动处理下
    在这里插入图片描述

  • 这里的关键,是要求代码开发人员提交代码时,描述要写的很清晰,一次提交只针对某一块功能,而且新功能代码大多比较独立。如果提交描述不清晰,或者提交内容与描述不符,或者代码都糅杂在一起、独立性很差,使用这个功能就会很费劲了,需要人工合并和删除不需要的代码

  • 所有需要的提交都pick完,提交推送到仓库即可,新的版本和功能就完成了,剩下的打包交给测试人员吧
    在这里插入图片描述


http://www.ppmy.cn/news/75058.html

相关文章

SpringSecurity权限管理基本概念和整体架构介绍

文章目录 一、权限管理1、认证2、授权3、对权限控制,现有的解决方案 二、SpringSecurity简介1、官方定义2、历史 三、整体架构1、认证AuthenticationManagerAuthenticationSecurityContextHolder 2、授权AccessDecisionManagerAccessDecisionVoterConfigAttribute 一…

容器目录挂载原理

前言 就我目前的对容器的了解, 使用namespace技术实现隔离, 使用cgroups技术实现资源限制. 但是具体是如何实现却从未深究过. 闲来无事, 挑其中的Mount Namespace来康康, 容器是如何实现目录隔离的. 目录隔离 在耗子叔的这篇文章中对此技术进行了介绍. 在c函数库中, 可通过…

Useraws的ec2服务器安装mysql

要在AWS EC2实例上安装MySQL,您可以按照以下步骤进行操作: 1. 启动EC2实例:登录到AWS控制台,启动一个EC2实例。确保您选择了合适的实例类型和配置,并确保具有所需的存储容量。 2. 连接到EC2实例:使用SSH客…

解决城市内涝的措施有哪些?需要用到哪些监测设备?

随着城市化的不断推进,城市内涝问题日益凸显。极端天气事件如暴雨、台风等对城市基础设施和居民生活造成了严重影响。那么,解决城市内涝的措施有哪些?需要用到哪些监测设备?针对上述问题,本文会为大家一一进行讲解。 解决城市内涝的措施有哪…

不要被别人影响,踏实做自己的事

预习 笔记 复习 做题 专注 效率 记忆 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示&#…

Scala学习(七)---面向对象特质

文章目录 1.面向对象特质(Trait)2.特质声明2.1 特质的特点2.2 特质冲突2.3 特质叠加2.4 特质自身类型2.5 特质和抽象类的区别扩展 1.面向对象特质(Trait) 在Scala语言中,采用特质trait(特征)来代替接口的概念,也就是说,多个类具有相同的特质…

MarkDown语法1

MarkDown语法1 段落样式 RUNOOB.COM GOOLE.COM 字体 斜体文本 斜体文本 粗体文本 粗斜体文本 粗斜体文本 高亮文本 高亮加粗文本 分割线 删除线 RUNOOB.COM GOOGLE.COM BAIDU.COM 下划线 带下划线文本 脚注 MarkDown列表 MarkDown支持有序列表和无序列表。…

电脑版pdf阅读器有哪些?编辑途径分析

PDF 阅读器电脑版是一种十分流行的电子文档阅读工具,它可以让用户在电脑上轻松地阅读各种文档,包括 PDF 文件。在数字化信息时代,PDF 阅读器电脑版已经成为了许多人电脑上必备的工具之一。本文将探讨 PDF 阅读器电脑版的优缺点,以…