别总用git merge了,Git高级操作之选择合并,git将一个分支的提交合并到另一个分支,git cherry-pick

当前需求:我现在有两个分支 A和B,这两个分支都同属于是一个项目,一个是新版本,一个是旧版本。而且差异化比较大

现在产品下发了一个需求,需要在两个版本上同时发布进行,那么只能在一个版本上开发,并且由于两个版本差异化较大,不可能用git merge进行合并,这样就会合并不需要的代码,因为我只需要合并这一个需求的。

所以我现在在A或者B分支上进行需求开发,然后提交开发的需求,然后只需要把新提交的代码合并到另一个分支就行了。git merge肯定不行,那么就会用到git的另一种方式 git cherry-pick

下面是操作方式

首先切换到A分支

git checkout A

git log

找出要合并的commit ID :

例如

325d41xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

然后切换到B分支上

git checkout B

git cherry-pick 325d41xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

然后就将A分支的某个commit合并到了B分支了

注意点:如果在A分支上有了很多commit ID 那么在多次执行 git cherry-pick 的时候可能需要先解决冲突,解决完冲突后需要先push,然后再继续 git cherry-pick,git commit和git stash 都无法解决,好像必须要push,我在这个坑上浪费了很多时间

但是这个操作的确能解决不少问题。特此记录一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值