什么?还不知道git cherry pick?

前言

上周四在公司开发代码时,一下没注意从测试分支dev上拉了代码并进行开发,最后要上线的时候才猛然发现分支拉错了,一看gitLab上改了几十个文件,再一查发现自己拉代码拉错了😭😭😭,本来都准备下班了,结果硬是新建了一个分支,把四五个文件近1000行代码一点一点cv到新分支上,结果搞完一查才发现git有个cherry pick的命令可以直接搞完,希望jym看完这篇文章以后不要像我一样做这种一点一点cv的蠢事了😭😭😭

什么是cherry pick

cherry pick顾名思义,就是樱桃采摘,只采摘你想要的那一颗,多一个都不要,他主要的作用就是可以将某个分支上的commit代码,移植到另一个分支上。

用法

  • git cherry-pick commit

唯一需要注意的就是他的commit-id,如果不知道怎么查看的话可以用git log 来进行查看commit-id,当执行完cherry pick以后,他会自动生成一个新的commit,也就是一个新的commit-id,这个提交的commit和原来的一模一样,只是这个commit-id不一样。

图解

如图所示,我们在第三个节点创建了一个新的分支A,在A上面进行了一次提交B,在A后面提交了三次,分别是add f1,add f2 ,fix bug ,但是最后经过查看发现这个bug在A分支的B里面,因为在master分支上还有其他的提交,所以这种我们肯定不能说直接git merge一下,给他merge到B上面,这种情况下我们就可以先切换到A分支上,然后用git cherry-pick <fix-bug-commit-id>去把他刚给提交到B后面

小结

最后小结一下,就是当我们想要合并某些内容,但是又不想包含整个分支的时候,这个时候就可以用cherry-pick了。

相关推荐
顺颂时绥_15 分钟前
前端大图片压缩与安卓/苹果设备矫正实践
前端
Allshadow5 分钟前
Nest.js - 目录结构
javascript·nestjs
Csvn7 分钟前
JSON.parse 大数精度丢失:一个让前后端互相甩锅的 Bug
前端
张元清14 分钟前
React useCookie Hook:把 Cookie 变成响应式状态(2026)
javascript·react.js
Helen_cai26 分钟前
OpenHarmony 项目统一全局样式、尺寸、色彩主题封装 ThemeUtil(API23)
开发语言·前端·javascript·华为·harmonyos
郑州光合科技余经理27 分钟前
家政O2O平台解析:从0搭建上门预约小程序解决方案
android·java·开发语言·前端·小程序·架构·php
小徐_233338 分钟前
AI 写 wot-ui 总在猜 API?我们把 Skills、MCP 和 CLI 都配好了
前端·uni-app·ai编程
winfredzhang43 分钟前
用 wxPython + ECharts + 阿里矢量地图,做一个可离线兜底的上海雨量看板
前端·javascript·echarts
索西引擎1 小时前
【React】Immer.js 在现代 Redux 生态中的角色:不可变性保障的工程化实现与开发体验优化
前端·javascript·react.js
kisshyshy1 小时前
《川剧变脸 × React 状态管理?我在浏览器里跑了个端侧大模型》
前端·react.js·架构