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

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

前面我们说了 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.lryc.cn/news/520638.html

相关文章:

  • 【C++】21.map和set的使用
  • burpsiute的基础使用(2)
  • ElasticSearch 同义词匹配
  • linux RT-Preempt spin lock实现
  • PySpark广播表连接解决数据倾斜的完整案例
  • Chromium CDP 开发(十二):为自己的Domain建立custom_config.json
  • 【Vue】全局/局部组件使用流程(Vue2为例)
  • Vue.js组件开发详解
  • 解决:ubuntu22.04中IsaacGymEnv保存视频报错的问题
  • 深度学习camp-第J7周:对于ResNeXt-50算法的思考
  • java: 错误: 无效的源发行版:17解决办法
  • Docker 安装开源的IT资产管理系统Snipe-IT
  • Go语言封装加解密包(AES/DES/RSA)
  • sql server 对 nvarchar 类型的列进行 SUM() 运算
  • java中json字符串键值获取
  • MPLS原理及配置
  • 口碑很好的国产LDO芯片,有哪些?
  • 【流程设计】类似钉钉的流程设计功能样式demo
  • ChatGPT入门之文本情绪识别:先了解LSTM如何处理文字序列
  • 测试开发之面试宝典
  • 399. 除法求值【 力扣(LeetCode) 】
  • 算法日记1:洛谷p2678跳石头(二分答案)
  • Unity shader中真的可以动态关闭Stencil Test吗?
  • YOLOv9改进,YOLOv9自研检测头融合HyCTAS的Self_Attention自注意力机制,2024,适合目标检测、分割任务
  • 计算机网络 (36)TCP可靠传输的实现
  • Git版本控制 - 创建使用Repository
  • MySQL —— 在CentOS9下安装MySQL
  • LeetCode 热题 100_腐烂的橘子(52_994_中等_C++)(图;广度优先遍历(队列))
  • Nginx 可观测性最佳实践
  • LabVIEW光流跟踪算法