git cherry-pick用法


场景: 如果你的应用已经发布了一个版本2.0, 代码分支叫release-2.0, 现在正在开发3.0, 代码的分支叫dev-3.0. 那么有一天产品说, 要把正在开发的某个特性提前上线, 也就是说要把dev-3.0分支上的某些更改移到2.x的版本上, 那么怎么办呢?

该cherry-pick上场了, cherry-pick会重演某些commit, 即把某些commit的更改重新执行一遍. 那么上述问题的解决方案如下:

  1. 基于release-2.0分支新建分支release-2.1, 并且到新创建的分支上
    git checkout -b release-2.1 release-2.0
  2. 将dev-3.0分支上的某些commit在release-2.1分支上重演
    git cherry-pick dev-3.0分支的某些commit-hash
    如:
git cherry-pick  
20c2f506d789bb9f041050dc2c1e954fa3fb6910 
2633961a16b0dda7b767b9264662223a2874dfa9 
5d5929eafd1b03fd4e7b6aa15a6c571fbcb3ceb4  

多个commit-hash使用空格分割, commit-hash最好按提交时间先后排列, 即最先提交的commit放在前面.


cherry-pick不仅可以用在不同分支之间, 还可以用在同一个分支上.
不同分支的用法如上所述. 同一分支用法也是一样的, 同一分支使用情形:
比如说你在某一个向某个分支中添加了一个功能, 后来处于某种原因把它给删除了,
然而后来某一天你又要添加上这个功能了, 这时候就可以使用cherry-pick把添加那个功能的commit, 再重演一遍.

======
想了解更多关于git的用法, 请移步这里Pro Git(en), Prop Git(zh)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 8,662评论 1 26
  • 原创,转载请联系授权。 孤另另/文 (1) 时过境迁, 你还好吗? 在遥远的天边, 飞鸟的云端, 海鸥的彼岸。 你...
    孤另另阅读 330评论 0 0
  • 以前很好奇人的自信心是从哪里来的,在很熟的朋友自夸的时候会用“你哪里来的自信”来打击他,我认为自信从来都不来...
    木棉简阅读 102评论 0 0
  • 整理一些笔试面试题,基础的。 1 OC中是否私有方法和私有成员变量? 先表明下观点:没有绝对的私有变量和方法。如果...
    peal阅读 227评论 0 0
  • 想你,就在这个漫长的夜里; 思绪里,你是已经安然的睡去,还是在缱绻着偷笑; 似一个怀春的少女,悄然打开心扉的一角;...
    乔国公阅读 628评论 0 0