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

cherry-pick 也适用与本地提交

因为git 的commit id 是uuid,在本地分支可以拉其它本地分支的commit

posted @ 2020-02-25 14:03  SnailRush  阅读(779)  评论(0编辑  收藏  举报