Git转移命令cherry-pick的使用

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。

文章目录

  • 转移命令`cherry-pick`
    • 1. 转移单个提交
      • 1.1 转移某分支最新提交到当前分支
      • 1.2 转移某分支的一个提交到当前分支
    • 2. 转移多个提交
      • 2.1 转移多个提交
      • 2.2 转移某分支的连续提交
    • 3. 配置项
    • 4. 解决代码冲突
      • 4.1 如何解决并继续
      • 4.2 如何放弃合并将文件恢复到操作前
      • 4.3 退出cherry-pick但不回到操作前
    • 5. 转移到另一个代码库


Git相关文章参考:
Git学习和使用指南简单篇
Git学习和使用指南详细篇
Git命令汇总

转移命令cherry-pick

git cherry-pick的使用:

1. 转移单个提交

1.1 转移某分支最新提交到当前分支

以下命令会将分支名对应的最新提交放到当前分支

git cherry-pick 分支名

举例:
如将dev的最新提交a转移到master分支
切换当前分支到master

git checkout master

将a转移到master

git cherry-pick dev

1.2 转移某分支的一个提交到当前分支

将一个分支的提交转移到另一个分支
正常我们将一个分支的内容全部转移到另一个分支时直接使用git merge命令合并即可
当我们只需要将分支的某个提交改动转移到另一个分支时,就可以用git cherry-pick
语法:

git cherry-pick commitId

commitId为提交的Id
举例:
dev的提交有:a-b-c
master的提交有:d-e-f

现在将master的提交e放到dev分支:
先将当前分支切换到dev

git switch dev

然后将提交e放到dev分支

git cherry-pick e

此时dev的分支如下a-b-c-e

2. 转移多个提交

2.1 转移多个提交

一次转移多个提交,可在命令后跟提交Id,可列举多个

git cherry-pick 提交a 提交b

此时会在当前分支应用这两个分支,并会生成两个对应的新提交

2.2 转移某分支的连续提交

如dev的提交有a-b-c-d-e-f-g-h-i
现在将dev分支的d.e.f.g分支都转移到master分支

git cherry-pick c..g

只能c…g不可以g…c,要遵循先后顺序
上面命令用法转移的提交不包含c,如果像包含c如下

git cherry-pick c^..g

该命令会将cdefg转移到分支

3. 配置项

cherry-pick常用配置如下:

参数含义
-e--edit表示打开外部编辑器,编辑提交信息
-n--no-commit表示只更新工作区和暂存区且不产生新的提交
-x表示在提交信息的末尾追加一行cherry picked from commit…方便以后查到这个提交如何产生的
-s--signoff表示在提交信息的末尾追加一行操作者的签名,方便查看谁操作的
-m parent-number--mainline parent-number表示如果原始提交是一个合并节点,来自于两个分支的合并,则cherry pick默认将失败,因为不知道采用哪个分支的代码变动

注意:
-m参数配置项是告诉git应该采用哪个分支的变动,参数parent-number是从1开始的整数,表示原始提交的父分支编号
git cherry-pick -m 1 <commitHash>表示cherry-pick采用提交commitHash来自编号1的父分支的变动,正常来说1号父分支是接受变动的分支,2号父分支是座位变动来源的分支

4. 解决代码冲突

当执行cherry-pick命令是遇到代码冲突,cherry pick会停下
以下为三种情况,可根据需要选用

4.1 如何解决并继续

先将冲突代码手动解决,然后
第一步,将修改的文件重新加入暂存区

git add 修改的文件

第二步,继续执行cherry-pick

git cherry-pick --continue

4.2 如何放弃合并将文件恢复到操作前

git cherry-pick --abort

4.3 退出cherry-pick但不回到操作前

git cherry-pick --quit

5. 转移到另一个代码库

git cherry-pick不仅可以在同一个代码库中操作,还可以将提交转移到另一个代码库

现将另一个代码库添加为远程仓库,如添加远程仓库target

git remote add target 远程仓库地址

将远程仓库抓取到本地

git fetch target

检查从远程仓库转移的提交,获取哈希值

git log target/master

转移提交

git cherry-pick <commitHash>

感谢阅读,祝君暴富!

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

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

相关文章

混合A*算法详解(二)路径平滑

描述 上一篇文章混合A*算法详解&#xff08;一&#xff09;路径搜索 路径损失函数使用Voroni势能图 根据之前的文章分析&#xff0c;决定A*路径长度的有两点&#xff1a;路径长度和距离障碍物远近。Voroni图用于权衡这两者。之前我在记录二维点云的阿尔法形状算法时简单介绍过…

grafana大盘展示node_expod节点

node_expod添加lables标签 Prometheus查询 语句查询 node_exporter_build_infografna添加变量查询 正常有值 切换其他的是有值的 我的报错原因 因为有多个数据源,我选择错了,因为修改的lable标签是其他数据源,所以获取不到 查询语句 我的变量是 $app node_filesyste…

【zustand】快速使用

基本使用 const useStore create((set) > {return {// 状态数据count: 0,// 修改状态数据的方法inc: () > {set((state) > ({count: state.count 1})) // 最后这个 () 的意思是返回了一个对象&#xff0c;基于原数据进行计算得到// set({count: 100}) // 不需要使…

JavaScript的当前时间设置及Date的运算

作者:私语茶馆 1.场景描述 如下图,在HTML刚加载时,需要将开始时间设置为默认当前时间,结束时间设置为当前时间后7天的时间。手工填写时间时,时间段不超过30天。 这里涉及到两个技术点: 1)Input Date的当前时间设置 2)date的运算 由于是动态修改HTML,所以采用…

AI预测福彩3D采取888=3策略+和值012路一缩定乾坤测试5月28日预测第4弹

昨天的第二套方案已命中&#xff0c;第一套方案由于杀了对子&#xff0c;导致最终出错。 今天继续基于8883的大底&#xff0c;使用尽可能少的条件进行缩号&#xff0c;同时&#xff0c;同样准备两套方案&#xff0c;一套是我自己的条件进行缩号&#xff0c;另外一套是8883的大底…

freemarker ftl模板 格式、列表、图片

文章目录 前言一、freemarker实现内容替换二、ftl 模板1.word另存ftl2.编辑ftl文件2.1 了解一下常用的标记及其说明2.2 list处理2.3 红线2.4 图片 总结 前言 固定内容word生成&#xff1a;freemarker ftl模板 动态表格生成&#xff1a;https://blog.csdn.net/mr_wanter/articl…

Python爬虫入门到进阶:解锁网络数据的钥匙

Python爬虫入门到进阶&#xff1a;解锁网络数据的钥匙 一、Python爬虫基础1.1 爬虫基本概念1.2 Python爬虫必备库1.3 第一个爬虫示例 二、实战爬虫实例2.1 爬取天气数据2.2 高级技巧&#xff1a;异步爬虫 三、反爬机制与应对策略3.1 常见反爬机制3.2 应对策略 四、性能优化与安…

【经验分享】可视化的项目管理,轻松解决资源冲突和协作困难

在数字化时代&#xff0c;高效协同逐步成为提升组织效能的重要着力点&#xff0c;同时也是企业保持竞争力、实现持续发展的关键要素。一方面可以打破部门壁垒&#xff0c;促进信息流通&#xff0c;从而提升整体工作效率&#xff1b;另一方面还能帮助企业优化资源配置和管理流程…

keithely 2401 低压源表

Keithley 2401 低压源表提供精密电压和电流源以及测量功能&#xff08;1V - 20V 和 10pA - 1A&#xff09;。它既是高度稳定的直流电源&#xff0c;也是真正的仪器级 5 位万用表。电源特性包括低噪声、精度和回读。万用表功能包括高重复性和低噪声。结果是紧凑型单通道直流参数…

JavaSE:String类常用方法(巨详细)

1、引言 在学习C语言时&#xff0c;我们就已经了解了字符串&#xff0c;但是在C语言中字符串只能用字符数组或者指针来表示&#xff0c;没有特定的字符串类型&#xff0c;而在Java中&#xff0c;我们有了字符串这一特定的类型---String类。 2、String类的常用方法 2.1 字符串…

ECU与外部通讯的场景

车辆ECU&#xff08;电子控制单元&#xff09;与车辆、路侧单元&#xff08;RSU&#xff09;、移动终端等进行直连通信时&#xff0c;确保通信的安全性是非常重要的。证书有效性和合法性的验证是确保通信双方身份真实性和数据传输安全的关键措施。以下是一些应进行证书验证的场…

第98天:权限提升-WIN 全平台MSF 自动化CS 插件化EXP 筛选溢出漏洞

目录 思维导图 前置知识 案例一&#xff1a; Web&Win2008-人工手动&全自动msf-筛选&下载&利用 手动 全自动msf 案例二: Web&Win2019-CS 半自动-反弹&插件&利用 思维导图 前置知识 提权方式&#xff0c;这里讲的是溢出漏洞 windows权限 常…

Java处理CSV文件示例

Java处理CSV文件示例 1. 导入依赖 <dependency><groupId>org.apache.commons</groupId><artifactId>commons-csv</artifactId><version>1.10.0</version></dependency>文件示例 下面是示例文件文件数据 vscode和idea都有解析…

使用python进行网络图绘制

网络图绘制 关系网络 结合下面的关系表格,替换预留的“学号”和“专业”字段为他们各自的学号和专业名称。替换和增加自己的兴趣节点以体现个性化信息。确保关系在网络图中能正确显示。节点表格节点ID名称类型备注1数学系基础节点2计算机科学系基础节点3数据科学组基础节点学…

多线程基础知识

什么是死锁&#xff1f;如何避免死锁&#xff1f; 死锁是指在多线程编程中&#xff0c;两个或多个线程互相等待对方持有的资源&#xff0c;导致程序无法继续执行的状态。 死锁的发生通常需要满足以下四个条件&#xff1a; 互斥条件&#xff1a;至少有一个资源被某个线程独占时&…

智慧林业云巡平台 客户端和移动端(支持语音和视频)自动定位巡护,后端离线路线监测

目前现状 无法客观、方便地掌握护林员的到位情况&#xff0c;因而无法有效地保证巡护人员按计划要求&#xff0c;按时按周期对所负责的林区开展巡护&#xff0c;使巡护工作的质量得不到保证。遇到火情、乱砍滥伐等灾情时无法及时上报处理&#xff0c;现场状况、位置等信息描述…

[IM002][Microsoft][ODBC驱动程序管理器]未发现数据源名称并且未指定默认驱动程序(0]

目录预览 一、问题描述二、原因分析三、解决方案四、参考链接 一、问题描述 使用navicat 连接sql server出现[IM002][Microsoft][ODBC驱动程序管理器]未发现数据源名称并且未指定默认驱动程序&#xff08;0] 二、原因分析 Navicat没有找到电脑安装的SQLServer驱动 三、解决方…

向传音手机学习产品市场定位与产品需求定义

2024 年第一季度全球智能手机发货量同比增长 11%&#xff0c;排在第一名的是三星&#xff0c;占比 21%&#xff0c;苹果占比 17% 排在第二位&#xff0c;小米 14%排在第三名&#xff0c;传音手机10% 排在第四位&#xff0c;OPPO为 9% 排在第五名。 「非洲之王」传音手机表现十…

数智赋能,变革加速:低代码赋能企业转型变革

随着数字化转型的浪潮&#xff0c;低代码平台成为企业加速创新和转型的关键工具。本文将探讨低代码技术如何帮助企业快速响应市场变化&#xff0c;提升开发效率&#xff0c;降低成本&#xff0c;并推动企业向智能化、自动化转型。 数智赋能的背景 随着科技的飞速发展&#xff0…

【Python】 如何从日期中减去一天?

基本原理 在编程中&#xff0c;日期和时间的处理是一个常见的需求&#xff0c;尤其是在处理日志、调度任务、数据分析等场景中。Python 提供了多种方式来处理日期和时间&#xff0c;其中最常用的库是 datetime。datetime 模块包含了日期&#xff08;date&#xff09;、时间&am…