git高级用法之cheery-pick

前言

想象一种情况,你在分支上开发多个功能,现在要将第一个功能推到另一个分支上

master 
1_2
     |    dev 
      \__3_4_5

例如上面的,先基于master创建了分支dev, 然后提交了3个commit, 如何只将提交3 合到master 上去呢?  

这就用到git的cheery-pick

  1. 先创建一个临时分支tmp,基于master

    git checkout -b tmp maser
  2. 将dev 的提交3 pick到tmp分支,这里commit_id 模拟就是3,当然实际的commit id是一个不可能重复的hash值

    git cherry-pick <commit id>
  3. 最后push 然后提mr

效果就是

master 
1_2_3
     |    dev 
      \__3_4_5

相关推荐