在前几天,领导让我把一段代码从这个分支往摘抄到另一个分支
为什么不直接
merge
过去呢,是这样的 比如说我的分支是hotfix-xxxx
,领导需要让我提交master
分支 客户等不及了,需要立刻让这个BUG
修复 但是呢,hotfix-xxxx
分支里面的代码改动还涉及了其他的BUG
,并不是只有上面这一个 而测试环境,也仅仅只测试了一个功能而已 所以,既然测试通过,就先安排这个BUG
修复先上,领导当时开会给我的方案就是摘抄代码
这我一整个头疼了,因为这个BUG
的修复,改动了很多代码文件,且代码位置极其分散
这让我摘抄,可不就是返工重写吗?
还有万一copy
代码的时候,漏掉了这那的,验证找起来也很麻烦
好的当时在开会,我没办法,只能硬着头皮答应下来
回到工位上,望着代码头皮发麻,还是不想摘抄,我就试着在网上找找方案,果真被我找到了方案
git
考虑的还是挺周到的,就是这个命令git cherry-pick
下面介绍一下,该如何使用
假设我有两个分支,branch-a
和branch-b
分支
我又在branch-b
分支上有6
个提交
如下,看齐提交顺序是交替的
那么所要做的就是,将功能A这三段提交,合并到branch-a
分支上,而不带上功能B
选中上面三条提交,右键点击Cherry-Pick
点击后,再查看一下提交,你会发现仅有选择的提交过来了
上面介绍了,在IDEA
中的操作,那么如何使用命令的方式呢,如下格式
git cherry-pick <commit_hash>
commit_hash
就是想要复制的提交hash
值
想要完成上面的效果,只需要如此即可
branch-a
git cherry-pick 功能A的hash1 功能A的hash2 功能A的hash3
分支可以指定多个,而不用一条一条的执行
注意 冲突时,要先解决冲突,再执行
git cherry-pick --continue
来进行剩余的提交 或者可以撤回,执行git cherry-pick --abort
不过还是推荐使用IDEA
的git
可视化来解决
完成了上面的操作后,本地先测试了一下,一遍过,不急着提交代码。
美滋滋,我报了3
个小时,又可以摸鱼喽!!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有