当前需求:我现在有两个分支 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,我在这个坑上浪费了很多时间
但是这个操作的确能解决不少问题。特此记录一下