前言
想象一种情况,你在分支上开发多个功能,现在要将第一个功能推到另一个分支上
master
1_2
| dev
\__3_4_5
例如上面的,先基于master创建了分支dev, 然后提交了3个commit, 如何只将提交3 合到master 上去呢?
这就用到git的cheery-pick
- 先创建一个临时分支tmp,基于master
git checkout -b tmp maser
- 将dev 的提交3 pick到tmp分支,这里commit_id 模拟就是3,当然实际的commit id是一个不可能重复的hash值
git cherry-pick <commit id>
- 最后push 然后提mr
效果就是
master
1_2_3
| dev
\__3_4_5
cherry-pick 也适用与本地提交
因为git 的commit id 是uuid,在本地分支可以拉其它本地分支的commit