前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >git上如何只合并自己想要commit而不涉及到其它

git上如何只合并自己想要commit而不涉及到其它

原创
作者头像
半月无霜
发布2024-07-21 19:52:46
1520
发布2024-07-21 19:52:46
举报
文章被收录于专栏:半月无霜

git上如何只合并自己想要commit而不涉及到其它

一、介绍

在前几天,领导让我把一段代码从这个分支往摘抄到另一个分支

为什么不直接merge过去呢,是这样的 比如说我的分支是hotfix-xxxx,领导需要让我提交master分支 客户等不及了,需要立刻让这个BUG修复 但是呢,hotfix-xxxx分支里面的代码改动还涉及了其他的BUG,并不是只有上面这一个 而测试环境,也仅仅只测试了一个功能而已 所以,既然测试通过,就先安排这个BUG修复先上,领导当时开会给我的方案就是摘抄代码

这我一整个头疼了,因为这个BUG的修复,改动了很多代码文件,且代码位置极其分散

这让我摘抄,可不就是返工重写吗?

还有万一copy代码的时候,漏掉了这那的,验证找起来也很麻烦

好的当时在开会,我没办法,只能硬着头皮答应下来

回到工位上,望着代码头皮发麻,还是不想摘抄,我就试着在网上找找方案,果真被我找到了方案

git考虑的还是挺周到的,就是这个命令git cherry-pick

下面介绍一下,该如何使用

二、使用

假设我有两个分支,branch-abranch-b分支

我又在branch-b分支上有6个提交

如下,看齐提交顺序是交替的

那么所要做的就是,将功能A这三段提交,合并到branch-a分支上,而不带上功能B

选中上面三条提交,右键点击Cherry-Pick

点击后,再查看一下提交,你会发现仅有选择的提交过来了

上面介绍了,在IDEA中的操作,那么如何使用命令的方式呢,如下格式

git cherry-pick <commit_hash>

commit_hash就是想要复制的提交hash

想要完成上面的效果,只需要如此即可

  1. 确保当前分支是在branch-a
  2. 让后执行git cherry-pick 功能A的hash1 功能A的hash2 功能A的hash3

分支可以指定多个,而不用一条一条的执行

注意 冲突时,要先解决冲突,再执行git cherry-pick --continue来进行剩余的提交 或者可以撤回,执行git cherry-pick --abort

不过还是推荐使用IDEAgit可视化来解决

三、最后

完成了上面的操作后,本地先测试了一下,一遍过,不急着提交代码。

美滋滋,我报了3个小时,又可以摸鱼喽!!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • git上如何只合并自己想要commit而不涉及到其它
    • 一、介绍
      • 二、使用
        • 三、最后
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档