当前位置: 首页 > java >正文

极狐GitLab 如何 cherry-pick 变更?

极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有:

  • 极狐GitLab 中文文档
  • 极狐GitLab 中文论坛
  • 极狐GitLab 官网

拣选(cherry-pick)更改 (BASIC ALL)

在 Git 中,cherry-pick 是从一个分支获取一个提交并将其添加为另一个分支的最新提交。源分支中的其余提交不会添加到目标。当您需要单个提交中包含的更改时,您应该 cherry-pick 一个提交,但您不能或不想将该分支的全部内容拉入另一个分支。比如,当你:

  • 将默认分支上的错误修复内容反向移植到之前的发布分支上。
  • 从 fork 的项目中复制变更到上游仓库。

使用极狐GitLab UI 来 cherry-pick 来自项目或项目派生的单个提交或整个合并请求。
在此示例中,Git 仓库有两个分支:develop 和 main。Commit B 是从 develop 分支 cherry-pick 而来,置于 main 分支中的提交 E 之后。Commit G 是在 cherry-pick 之后添加的:

gitGraph
commit id: "A"
branch develop
commit id:"B"
checkout main
commit id:"C"
checkout develop
commit id:"D"
checkout main
commit id:"E"
cherry-pick id:"B"
commit id:"G"
checkout develop
commit id:"H"

从合并请求中拣选所有更改

合并请求合并后,你可以 cherry-pick 所有该合并请求引入的变更。合并请求可以是上游项目的也可以是下游派生项目的。
先决条件:

  • 你必须具有允许你编辑合并请求和添加代码到仓库的角色。

  • 你的项目必须使用 合并方法 合并提交,此设置是在项目的 设置 > 合并请求 中设置的。
    在极狐GitLab 16.9 及之后,当 fast-forwarded 提交是压缩的或合并请求只包含一个提交时,它只能在合并请求 UI 中 cherry-pick。你总是可以 cherry-pick 单个提交。

要想这么做:

1.在左侧导航栏,选择 搜索或前往,然后找到您的项目。

2.选择 代码 > 合并请求,然后找到您的合并请求。

3.滚动到合并请求报告部分,找到 合并者 报告。

4.在 合并者 报告的右上角,选择 Cherry-pick

在这里插入图片描述

5.在弹出的对话框中,选择您想要 Cherry-pick 的项目和分支。

6.可选。选择 使用这些更改开始新的合并请求

7.点击 Cherry-pick

拣选单个提交

您可以从极狐GitLab 项目的多个位置中拣选单个提交。

从项目提交列表

要从项目的所有提交列表中拣选一个提交:

1.在左侧导航栏,选择 搜索或前往 并找到你的项目。
2.选择 代码 > 提交
3.选择您要拣选的提交的标题。
4.在右上角,选择 选项 > 拣选
5.在弹出的对话框中,选择您想要拣选的项目和分支。
6.可选。选择 使用这些更改开始新的合并请求
7.选择 拣选

从仓库的文件视图

当您在项目的 Git 仓库中查看该文件时,您可以从影响单个文件的先前提交列表中拣选:

1.在左侧导航栏,选择 搜索或前往,然后找到您的项目。
2.选择 代码 > 仓库
3.前往提交变更的文件。在右上角,选择 历史
4.选择您要拣选的提交的标题。
5.在右上角,选择 选项 > 拣选,显示拣选窗口。
6.在窗口中,选择项目和分支来拣选。
7.可选。选择 使用这些更改开始新的合并请求
8.选择 拣选

查看拣选提交的系统说明

当您在 UI 或 API 中拣选合并提交时,极狐GitLab 会相关的合并请求主题添加系统备注:
在这里插入图片描述

选择不同的父提交

当您在极狐GitLab UI 上 cherry-pick 一个合并提交时,主线始终是第一个父级。使用命令行选择不同的主线。更多详情,可以查阅使用 Git cherry-pick 一个合并请求。

http://www.xdnf.cn/news/1720.html

相关文章:

  • STM32移植最新版FATFS
  • Godot开发2D冒险游戏——第二节:主角光环整起来!
  • C# new Bitmap(32043, 32043, PixelFormat.Format32bppArgb)报错:参数无效,如何将图像分块化处理?
  • STM32F103_HAL库+寄存器学习笔记20 - CAN发送中断+ringbuffer + CAN空闲接收中断+接收所有CAN报文+ringbuffer
  • Python爬虫去重策略:增量爬取与历史数据比对
  • VulnHub-DC-2靶机渗透教程
  • zip是 Python 中 `zip` 函数的一个用法
  • 数模学习:一,层次分析法
  • flutter 小知识
  • 在Ubuntu 18.04 和 ROS Melodic 上编译 UFOMap
  • 跨浏览器音频录制:实现兼容的音频捕获与WAV格式生成
  • Spring Security认证流程
  • LabVIEW实现Voronoi图绘制功能
  • 【MQ篇】初识RabbitMQ保证消息可靠性
  • 信息系统项目管理工程师备考计算类真题讲解七
  • KMS工作原理及其安全性分析
  • Java Agent 注入 WebSocket 篇
  • java方法引用
  • kotlin和MVVM的结合使用总结(二)
  • 一种Spark程序运行指标的采集与任务诊断实现方式
  • CE第二次作业
  • NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve
  • Git 的基本概念和使用方式
  • C++跨平台开发要点
  • Spring AI 核心概念
  • 【Linux】网络基础和socket
  • HGDB安全版单机修改用户密码
  • spring-ai使用Document存储至milvus的数据结构
  • dockercompose文件仓库
  • [Java]动态代理