Git命令
git cherry-pick <commit id>
使用背景
- 用户中心需要优化,在分支daily/1.3.0上开发。
- 在优化的过程中提取了公共部分独立成文件或模块,提交到了daily/1.3.0上。此时分支上即有公共部分,又有此次优化的功能点。
- 突发奇想,想要对别的地方进行优化、抽象别的方法,但是又不想影响此次的功能,即不想也不能提交在daily/1.3.0上。
- 如果基于daily/1.3.0新建分支的话,除公共优化部分还会带来多余的功能点;但是基于干净分支新建一个分支,优化的历史记录难道要一个一个拷贝粘贴????
- 还好,在优化的时候,抽象方法相对功能点独立,commit比较干净
目的
新建一个干净的优化分支,把daily/1.3.0关于公共优化部分的commit搞过来
工具
WebStorm
步骤
- 基于master或别的干净、可上线的分支新建并切换至分支refine/routes-common
- 打开WebStorm下的Version Control,选择Log选项卡,Branch选择daily/1.3.0
3.选择需要合并的commit, 右键->cherry-pick (之所以不使用命令行是多选commit的时候比较麻烦)
-
像普通提交一样commit,如果有冲突,像普通解决冲突一样解决
其实
如果只涉及文件变动,也可以使用git checkout来合并文件夹