git合并某个分支的某次提交(cherry-pick)

前言:

一般项目在开发阶段,都会创建多个分支,用于不同开发阶段的版本发布
如:master、dev、pro、feature、hot_fix…等,之所以会有这种多分支情况,就是项目在不同的开发阶段,新的业务会对之前业务造成影响,所以建多个分支用来发布不同的迭代版本,直至一个迭代完成测试、上线。

示例

说明:

将某个分支的一个(或多个)提交合并到另一个分支,注意不是merge,merge是全部合并、而我们要的是可选择的,就要用到 Cherry pick

参数解释:

git cherry-pick [commit] 命令的常用配置项如下。
(1)-e
打开外部编辑器,编辑提交信息。
(2)-n
只更新工作区和暂存区,不产生新的提交。
(3)-x
在提交信息的末尾追加一行(cherry picked from commit …),方便以后查到这个提交是如何产生的。
(4)-s
在提交信息的末尾追加一行操作者的签名,表示是谁进行了这个操作。
(5)-m parent-number
如果原始提交是一个合并节点,来自于两个分支的合并,那么 Cherry pick 默认将失败,因为它不知道应该采用哪个分支的代码变动。
-m配置项告诉 Git,应该采用哪个分支的变动。它的参数parent-number是一个从1开始的整数,代表原始提交的父分支编号。

示例:

例如:有 testdev 两个分支,dev有多次提交(按照提交顺序)[ABCDE],我想合并提交Btest分支
1.查看 dev 提交版本号记录
git log dev
在这里插入图片描述
2.切换到待合并分支 test
git checkout test
3.执行合并
git cherry-pick 6b4182a807ef4e30b7da3ea9bf7211b4de9a7b6f
4.然后推到远程
git push

补充:

1.如果想一次合并B、C两个提交,如下:
git cherry-pick A B
2.我想合并从BD的所有提交
git cherry-pick B…D
注意:
上面提交B要早于D,不然不会成功,而且不会包含提交B,也就是只有C、D两次提交,如果要包含B提交,则要如下:
git cherry-pick B^..D

-END-

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值