TortoiseGit 入门指南13:拣选

对于多分支的代码库,将代码从一个分支转移到另一个分支是常见需求。

这时分两种情况。一种情况是,你需要另一个分支的所有代码变动,那么就采用 合并(merge)。另一种情况是,你只需要部分代码变动(某几个提交),这时可以采用 拣选(Cherry pick)。

通俗的讲 拣选 直接把某一次 提交 (commit)拿过来,作为最新一次提交,就像是直接摘了一颗樱桃加在链表最前面,所以叫Cherry pick (拣选)。

如果你感兴趣,可以从 Git 的底层来了解下拣选,如果不感兴趣,可以忽略这些内容。

git cherry-pick <commitHash>

该命令将指定的提交 commitHash 应用于当前分支。这会在当前分支产生一个新的提交,当然它们的哈希值会不一样。

举例来说,代码仓库有 masterfeature 两个分支。

a - b - c - d   Master\e - f - g  Feature

现在将提交 f 应用到 master 分支。

# 切换到 master 分支
$ git checkout master# 拣选 操作
$ git cherry-pick f

上面的操作完成以后,代码库就变成了下面的样子。

a - b - c - d - f   Master\e - f - g      Feature

从上面可以看到,master分支的末尾增加了一个提交 f

git cherry-pick 命令的参数,不一定是提交的哈希值,分支名也是可以的,表示转移该分支的最新提交。

$ git cherry-pick feature

上面代码表示将 feature 分支的最近一次提交,转移到当前分支。

拣选的一般步骤

test-合并指定提交 分支中的某个提交应用到 master 分支的步骤如下:

  1. 切换到 master 分支:鼠标右键 -Tortoise Git - Switch/Checkout...,选择 master 分支。

  2. 打开 提交日志对话框,切换到 test-合并指定提交 分支,选中要 拣选 的某个提交或多个提交,然后右击鼠标弹出右键菜单,选择 Cherry Pick this commit...(选中一个提交)或 Cherry Pick select commits...(选中多个提交)。

在这里插入图片描述

  1. 这里选中 分支提交2,右击鼠标弹出右键菜单,选择 Cherry Pick this commit... 弹出 拣选 对话框。

在这里插入图片描述

拣选对话框与变基(Rebase)对话框很像。顶部窗口中每行显示一个选中的要 cherry-pick 的提交。顶部窗口下面的按钮控制操作,比如选取(Pick)提交、编辑、跳过等,还可以选择多个提交的顺序。

选中一行提交后,在底部窗口将显示受影响的文件。

  1. 选中要拣选的提交,单击 Continue 按钮。
  2. 如果没有冲突,在弹出的界面中按下 Done 按钮完成 拣选 操作。

注意:拣选可能产生合并冲突,在下面的 处理拣选冲突 中介绍如何解决冲突。

处理拣选冲突

1.在 拣选的一般步骤 一节中,最后的合并可能会有冲突。如果有冲突,在 Cherry Pick 对话框的底部窗口中会显示出冲突的文件:

在这里插入图片描述

  1. TortoiseGit会使用特定的图标标示出冲突的文件:

    在这里插入图片描述

  2. 选中冲突文件,在右键菜单中选择 TortoiseGit - Edit Conflicts 启动外部合并工具/冲突编辑器手动解决冲突。

在这里插入图片描述
这里 CHERRY_PICK_HEAD(77c84bf9) 是我们要合并的源文件,与 Base 文件相比较可以看出新增加了一个内容为 “分支提交5” 的提交,这个提交是我们要拣选到主分支( HEAD 指向的文件)的提交。
4. 手动编辑冲突,需要把 “分支提交5” 内容拷贝到主分支(HEAD指向的文件),然后保存:

在这里插入图片描述
5. 手动修改冲突文件后,执行 TortoiseGit - Resolve... 菜单项,在弹出的对话框中点击 OK按钮,将刚刚修改的冲突文件标记为 冲突已解决(resolve)
在这里插入图片描述
7. 标记为冲突已解决后,TortoiseGit弹出下一步操作界面。正常的合并冲突流程需要做一次提交,填写本次冲突解决的信息,但我们这里是拣选合并,并不需要手动做一次提交,所以这里点击OK按钮,而不要点Commit...按钮!(这是与普通合并冲击解决流程的唯一区别)。

在这里插入图片描述
8. 回到拣选对话框,在底部窗口按下 F5 快捷键刷新显示内容,可以看到文件已经不是冲突状态。这时按下 Commit 按钮,让 TortoiseGit 自动做一次提交。注意这次提交并不需要你填写什么信息,TortoiseGit 会把拣选的提交信息搬运到这次提交中。

在这里插入图片描述
8. 自动完成一次提交后,按下 Done 按钮完成 拣选 操作。

在这里插入图片描述









读后有收获,资助博主养娃 - 千金难买知识,但可以买好多奶粉 (〃‘▽’〃)
千金难买知识,但可以买好多奶粉

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/2923.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[JVM] 2. 类加载子系统(1)-- 内存结构、类加载子系统概述

一、内存结构 类加载子系统的职责是&#xff1a;加载class文件到内存中。 完整的内存结构如下&#xff1a; 二、类加载过程 类加载过程总体分为Loading&#xff08;加载&#xff09;、Linking&#xff08;链接&#xff09;、Initialization&#xff08;初始化&#xff09;三…

Mars3d采用ellipsoid球实现模拟地球旋转效果

1.Mars3d采用ellipsoid球实现模拟地球旋转效果 2.开始自选装之后&#xff0c;模型一直闪烁 http://mars3d.cn/editor-vue.html?idgraphic/entity/ellipsoid 3.相关代码&#xff1a; import * as mars3d from "mars3d"export let map // mars3d.Map三维地图对象 …

深入浅出如何通过API瞬间搭建亿万商品外贸代购系统PHP系统

什么是淘宝代购 淘宝代购是近年兴起的一种购物模式&#xff0c;是帮国外客户购买中国商品。主要是通过万邦 科技的外贸代购系统&#xff0c;把淘宝、天猫等电商平台的全站商品通过API 接入到你的网站 上&#xff0c;瞬间就可以架设一个有数亿产品的大型网上商城&#xff0c;而…

2023年测试之路,从功能测试进阶测试开发工程师,突破内卷...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 测试开发工程师到…

Redis可视化工具(Redis Desktop Manager)

redis是我们平时开发工作中经常用到的非关系型数据库&#xff0c;常用于做数据缓存&#xff0c;分布式锁等。 为了更方便的使用redi&#xff0c;这里给大家推荐一款可视化工具&#xff1a;Redis Desktop Manager。 1.下载与安装 直接到gihub下载&#xff0c;地址 Release 0.…

uni-app的H5版本下载跨域问题

前端能正常访问图片&#xff0c;但无法下载 因为路径不经过业务代码&#xff0c;所以需要在nginx配置跨域 代码&#xff1a; add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods GET, POST, OPTIONS; add_header Access-Control-Allow-H…

基于simulink的DPLL仿真笔记

该笔记主要用于本人思路整理与记录 本设计运用的是电荷泵一阶环路滤波器&#xff0c;二阶三阶则在此基础上举一反三&#xff0c;以后如有机会会慢慢补全 文章目录 一.仿真模型PS&#xff08;题外话&#xff09; 二.仿真结果三.环路滤波器分析1. 环路滤波器对比LPF2. 环路滤波器…

Shikra:新一代多模态大语言模型,理解指向,说出坐标

“ Shikra&#xff1a;解锁多模态语言模型参考对话的魔法” Shikra和用户的对话案例 在人类的日常交流中&#xff0c;经常会关注场景中的不同区域或物体&#xff0c;双方都可以通过说话并指向这些区域来进行高效的信息交换。我们将这种对话模式称为参考对话&#xff08;Referen…

uniapp自定义头部,计算状态栏和导航栏高度超简单三步

效果图 1.pages.json 页面给要自定义头部的页面加入一行代码 "navigationStyle":"custom" {"path": "pages/index/index","style": {"navigationBarTitleText": "","navigationStyle":"…

Gin+Gorm练手小项目bubble清单企业级结构剖析

概述 本项目来源于Qimi老师的小清单项目——基于gingorm开发的练手小项目&#xff0c;通过该项目可初识go web开发该有的姿势。笔者对代码有些许修改&#xff0c;以下是项目成功运行的截图&#xff0c;主要功能有添加&#xff0c;删除&#xff0c;确认&#xff0c;查看待办事项…

有哪些记事本app可以用来整理个人笔记?

我总是在思考一个问题&#xff0c;为什么现在越来越多的人选择使用记事本app&#xff1f;它们相比传统笔记本&#xff0c;又有什么吸引人的地方呢&#xff1f;这其实并不难理解。因为&#xff0c;记事本app不仅可以让我们及时记录重要信息&#xff0c;还能对这些信息进行系统、…

Django实现接口自动化平台(九)环境envs序列化器及视图【持续更新中】

相关文章&#xff1a; Django实现接口自动化平台&#xff08;八&#xff09;测试报告reports序列化器及视图【持续更新中】_做测试的喵酱的博客-CSDN博客 本章是项目的一个分解&#xff0c;查看本章内容时&#xff0c;要结合整体项目代码来看&#xff1a; python django vue …

mac 下 geoserver 安装

一、去官网下载geoserver https://geoserver.org/ 选择一个版本&#xff0c;然后点进去 二、需要配置java环境和设置geoserver 环境变量 1&#xff09;、java 环境安装 Java Downloads | Oracle 中国 2&#xff09;、环境变量设置 1.打开终端&#xff1a;command 空格键 2…

Python自动获取字母站视频

如果有疑问的话可以在我的谈论群&#xff1a;706128290 来找我 目录 前言 二、编写代码 1.引入库 2.编写主类 3. 自动获取cookies值和生成headers 4.获取命令行参数 运行效果 前言 browser_cookie3 第三方模块 browser_cookie3是browser_cookie模块的分支&#xff0c;…

jupyter notebook更换虚拟环境(内核)

jupyter notebook更换虚拟环境&#xff08;内核&#xff09; 创建一个新的虚拟环境 # stk_env 虚拟环境的名字&#xff0c;任取。 conda create -n stkenv python3.9激活虚拟环境 conda activate stkenv安装ipykernel # 为该虚拟环境&#xff0c;安装内核。 conda install -c a…

基于C语言设计的足球信息查询系统

完整资料进入【数字空间】查看——baidu搜索"writebug" 需求分析与概要设计 2.1 项目说明 我们小组的选题主要是面向足球爱好者&#xff0c;在普通社交软件的基础之上&#xff0c;围绕足球的主题展开设计&#xff0c;以便于他们能够更好的交流相关的话题&#xff…

linux之Ubuntu系列(六)用户管理 终端命令 which 查看执行命令所在的位置

提示 /etc/passwd 是用于保存用户信息的文件 可以用cat 命令查看 cat /etc/passwd/usr/bin/passwd 是用于修改用户密码的 程序 &#xff0c;是程序 程序 &#xff0c; which 命令 可以查看执行命令所在的位置 # 输出 /bin/ls which ls # 输出 /usr/sbin/useradd which useradd…

git clone 或者是vscode clone 时遇到the remote end hung up unexpectedly

fatal: the remote end hung up unexpectedly fatal: early EOF fatal: index-pack failed使用git clone总是报错 查看原因有三种可能&#xff1a;要么是缓存不够&#xff0c;要么是网络不行&#xff0c;要么墙的原因。 如果是网络不行&#xff0c;可以配置git的最低速度和最…

re学习(19)[ACTF新生赛2020]easyre1(UPX脱壳)

文章链接&#xff1a;BUUCTF在线评测 参考视频&#xff1a;B站 【新手教程三】小Z带你学习什么是ESP定律和什么是堆栈平衡 &#xff1f; - 『脱壳破解区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn 题解&#xff1a; 工具脱壳 key"*F\"N,\"…

MYSQL数据库-数据库的学习

MYSQL数据库-数据库的学习 MYSQL数据库一、数据库的基本概念二、常见的数据库三、MySQL数据库四、SQL操作五、SQL高级操作六、SQL函数&#xff08;SQL 拥有很多可用于计数和计算的内建函数) MYSQL数据库 一、数据库的基本概念 1、数据库的英文单词:DataBase 简称 : DB 2、什么…