场景: 如果你的应用已经发布了一个版本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)

最新文章

  1. 【转载】java项目中经常碰到的内存溢出问题: java.lang.OutOfMemoryError: PermGen space, 堆内存和非堆内存,写的很好,理解很方便
  2. sql练习
  3. maven增加Spring
  4. PHP使用session_set_save_handler陷阱
  5. spark - 将RDD保存到RMDB(MYSQL)数据库中
  6. 窗体控件 回车事件 分类: WinForm 2014-11-21 10:45 233人阅读 评论(0) 收藏
  7. 【译】ASP.NET MVC 5 教程 - 2:添加控制器
  8. UML 之 序列图和协作图
  9. .8-Vue源码之AST(4)
  10. RubyGems系列之创建自己的gem
  11. Spring webflux
  12. LeetCode算法题-Distribute Candies(Java实现)
  13. 基于JavaCv并发读取本地视频流并提取每帧32位dhash特征
  14. React 生命周期及使用场景
  15. WebServices 注解汇总
  16. jquery向Django后台发送数组
  17. Python Numpy-基础教程
  18. CentOS7.2网络配置
  19. 设计模式之UML类图六大关系辨析【2】
  20. 牛客网-《剑指offer》-替换空格

热门文章

  1. webSocket支持的浏览器
  2. 淘宝用户api 如何获得App Key和API Secret
  3. BASIC-27_蓝桥杯_2n皇后问题
  4. js中,object可以调用style对象,[]不可以调用style对象
  5. JavaScript-Tool:Numeral.js
  6. [转]常用字符与ASCII代码对照表
  7. 普适注意力:用于机器翻译的2D卷积神经网络,显著优于编码器-解码器架构
  8. Spectrum Scale
  9. vs2017诊断工具
  10. python 之路06day