git 一个能够提升开发效率的命令:cherry-pick

各位码农朋友们必定有碰到过这样的状况:在develop分支上辛辛苦苦撸了一通代码后开发出功能模块A,B,C,这时老板过来讲,年青人,咱们如今先上线功能模块A,B。你必定内心一万只草泥马奔腾而过,但为了混口饭吃必须得按老板的意思办事啊。git

怎么办?一个办法就是,从新建一个分支,而后再把功能模块C回退,留下功能模块A,B。这种作法不是不行,可是有更好的办法,那就是git所提供的cherry-pick功能。学习

cherry-pick相似于一个定制化的merge,它能够把其它分支上的commit一个个摘下来,合并到当前分支。人工智能

废话很少说,直接上实例。code

好比我如今有个文件a.c,我在develop分支完成了三个功能模块:feature A,feature B,feature C。以下图:blog

如今,坑爹的老板只要feature A,feature B,咱们如今用cherry-pick命令直接把feature A,feature B的提交合并到master分支里,以下操做:开发

能够看到,功能模块feature A,feature B已经被合并到master分支里。请注意,合并到master分支里的提交哈希值发生了改变,与原来的不一样。it

能够看出,cherry-pick命令使用方法很简单,即:ast

git cherry-pick commitID

刚刚是一个个提交cherry-pick到master分支,但若是有100个commit要合并到master分支呢?总不能这样一个个操做吧?git同样帮你想到了,它提供了一个区间操做方法。具体来说是这样的:二维码

git cherry-pick commit1..commit100

可是要注意,这是一个左开右闭的操做,也就是说,commit1不会被合并到master分支,而commit100则会。这样的话上面的需求能够以下操做来实现:方法

注意:上面讲到cherry-pick命令每拣选一个commit就会提交一次生成一个新的commit id。 若是咱们想让每一个commit 拣选后暂缓提交,等到全部commit都拣选完成后,本身手动commit,应该怎么办呢?答案是用-n 选项:

怎样,是否是很简单?学会了cherry-pick命令妈妈不再用担忧老板时不时的头脑发热了。快扫描下方二维码和良许一块儿学习更多git神操做!

更多精彩内容,请关注公众号良许Linux,公众内回复1024可免费得到5T技术资料,包括:Linux,C/C++,Python,树莓派,嵌入式,Java,人工智能,等等。公众号内回复进群,邀请您进高手如云技术交流群。

img


公众号:良许Linux

有收获?但愿老铁们来个三连击,给更多的人看到这篇文章

相关文章
相关标签/搜索