Git-2-:Cherry-Pick 的使用场景及使用流程

news/2025/1/15 15:43:54 标签: git

前面我们说了 Git合并、解决冲突、强行回退等解决方案 >> 点击查看

这里再说一下 Cherry-Pick功能,Cherry-Pick不是merge,只是把部分功能代码Cherry-Pick到远程的目标分支

git cherry-pick功能简介:

git cherry-pick 是用来从一个分支中选择一个或多个特定的提交,并将这些提交应用到当前分支。这样可以只选择需要的更改,而不是合并整个分支。

git cherry-pick 命令的作用,就是将指定的提交应用于其他分支。

使用场景:

        项目组开发任务直接从master拉开发分支,一个任务一个开发分支,开发完成后合入dev分支测试,测试验证通过之后,再合入master分支,然后上线发布。这时候你的开发分支每次合入的时候就不需要merge处理,只需要通过cherry-pick功能把你开发的功能点代码提交到dev分支或者master分支即可,这样可以减少冲突,当然也会有冲突

实战使用案例:

        例如:现在有 devlop-client-htl 分支(目标分支),当前这个文件的内容如下:

还有另一个 devlop-client-htl-001 分支(源分支),通过 git cherry-pick 提交下面被框起来的代码注释到 devlop-client-htl 分支

1、先找到 源分支 devlop-client-htl-001  功能commit的 哈希值

# 检出到源分支
git checkout devlop-client-htl-001
# 查看日志信息
git log

执行结果如下:

 比如:我们现在查到的hash编码是 8c10792ddf3838497d********(上面在git管理端也可以找到你要的提交记录的哈希值)

2、切换到 目标分支, 并且进行 cherry-pick 源分支提交的功能
# 检出到目标分支
git checkout devlop-client-htl
# 执行命令,将提交应用到目标分支上
git cherry-pick 8c10792ddf3838497d********

# 也可以一次转移多个提交
git cherry-pick <HashA> <HashB>

上面的命令将 A 和 B 两个提交应用到当前分支。这会在当前分支生成两个对应的新提交。 

3、处理冲突(如果无冲突此处略过)没有冲突直接执行第5步

冲突不一定有,如果有冲突就要处理一下
如果有冲突,git会进行提示,手动解决后在进行以下命令:

git add.
git cherry-pick – continue
4、终止cherry-pick(用于终止操作,一般用不到)
git cherry-pick --abort

5、推送修改到远程仓库

git push origin main

6、idea 操作 cherry-pick功能

第一步:鉴出到目标分支(保持当前分支为目标分支)

第二步:通过git提交记录找到源分支的提交记录

 右键,找到 cherry-Pick功能

第3步:直接提交push操作,如下:

 我们可以看到有一个需要push的文件,点击push即可

这时候目标分支已经有了提交的代码注释 


http://www.niftyadmin.cn/n/5824207.html

相关文章

Unity WebGL:本机部署,运行到手机

Unity WebGL 简单介绍一下Unity WebGL的技术方案&#xff0c;在WebGL平台出包后&#xff0c;Unity的运行时C/C代码是通过Emscripten编译成了WebAssembly/Wasm&#xff1b;游戏逻辑部分的C#代码是先通过il2cpp转成C再编译转成的Wasm&#xff0c;Unity程序就就可以在支持WebAsse…

【Axure】1500+实用图标库

most Icon 是基于工作中常用的图标进行整理的一款高度灵活的矢量图标库&#xff08;非字体图标&#xff0c;不需要安装字体&#xff09;&#xff0c;并在 axure 内可以右键转换成图形并修改颜色&#xff0c;轻松调整图标的尺寸、色调、光影效果以及背景填充等各项属性。 它在 …

ue5使用蓝图接口记录

接口发出方 消息接收方

用 Python 从零开始创建神经网络(二十二):预测(Prediction)/推理(Inference)(完结)

预测&#xff08;Prediction&#xff09;/推理&#xff08;Inference&#xff09;&#xff08;完结&#xff09; 引言完整代码&#xff1a; 引言 虽然我们经常将大部分时间花在训练和测试模型上&#xff0c;但我们这样做的核心原因是希望有一个能够接受新输入并生成期望输出的…

zig语言初探:来写贪吃蛇游戏

Zig 语言简介&#xff1a; Zig 是一种系统编程语言&#xff0c;注重安全、性能和可维护性。具有简洁的语法&#xff0c;支持强大的编译时功能&#xff0c;旨在取代 C 语言&#xff0c;适合系统级编程。 本文使用 Zig 实现贪吃蛇游戏&#xff0c;利用 curses 库进行终端显示&…

【IO编程】深度优先遍历

深度优先遍历目录&#xff08;Depth-First Traversal&#xff09; 是一种递归或栈式的目录遍历方法&#xff0c;优先深入到子目录中&#xff0c;再回溯到父目录继续遍历其他子目录。这是一种常见的文件系统操作&#xff0c;适用于查找文件、统计目录大小等场景。 深度优先遍历…

B3DM格式在线预览与转换

B3DM&#xff08;Batched 3D Model&#xff09;格式是3DTiles规范中的核心组成部分&#xff0c;专为高效存储和传输三维模型数据而设计。它广泛应用于大规模三维城市建模、地理信息系统&#xff08;GIS&#xff09;及虚拟现实等领域。 B3DM格式简介 B3DM定义与用途 B3DM是3DT…

docker mysql5.7如何设置不区分大小写

环境 docker部署&#xff0c;镜像是5.7&#xff0c;操作系统是centos 操作方式 mysql 配置文件是放在 /etc/mysql/mysql.conf.d/mysqld.cnf&#xff0c; vim /etc/mysql/mysql.conf.d/mysqld.cnf lower_case_table_names1 重启mysql容器 验证 SHOW VARIABLES LIKE low…