git cherry-pick 一个merge commit 到一个新的分支

怎甘沉沦 提交于 2019-11-29 04:37:13

业务:

现有feature/develop_fixbug_3011,develop两个分支,feature/develop_fixbug_3011分支based develop,并在feature/develop_fixbug_3011开发一个功能模块后将feature/develop_fixbug_3011 merge到develop分支.然后将feature/develop_fixbug_3011分支从远程仓库删除.

现有分支C,需要将在feature/develop_fixbug_3011分支开发的功能合并到C分支

实现:

git cherry-pick 打补丁

1.git checkout develop

2.git log --after="2019-05-14 00:00" --before="2019-05-14 23:59",其中日期为将feature/develop_fixbug_3011 merge到develop的日期,从而获取到 merge 的commit log

commit e4739c22eb5045dd6b98cc4dbc403263c7af51a7
Merge: c399515 160a103
Author:********
Date:   Tue May 14 06:24:08 2019 +0000

    Merge branch 'feature/develop_fixbug_3011' into 'develop'
    
    Feature/develop fixbug 3011
    
    See merge request synesis/source!88

其中 e4739c22eb5045dd6b98cc4dbc403263c7af51a7 为该次merge的提交id, c399515 为develop分支 之前的一次提交 id,160a103 为feature/develop_fixbug_3011 的上一次提交

3.git checkout C

4.  git cherry-pick e4739c22eb5045dd6b98cc4dbc403263c7af51a7 -m 1

其中 -m -1 表明 e4739c22eb5045dd6b98cc4dbc403263c7af51a7 的父节点为c399515,即要打的补丁为 c399515 到 e4739c22eb5045dd6b98cc4dbc403263c7af51a7之间的变化.也就是在 feature/develop_fixbug_3011上开发的功能

5. git push

 

 

 

参考:

https://segmentfault.com/q/1010000010185984

https://blog.csdn.net/u010900754/article/details/79660533

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!