各位码农敌人们肯定有碰到过这样的状况:在develop分支上辛辛苦苦撸了一通代码后开发出功能模块A,B,C,这时老板过去说,年青人,咱们当初先上线功能模块A,B。你肯定心里一万只草泥马奔流而过,但为了混口饭吃必须得按老板的意思办事啊。
怎么办?一个方法就是,从新建一个分支,而后再把功能模块C回退,留下功能模块A,B。这种做法不是不行,然而有更好的方法,那就是git所提供的cherry-pick性能。
cherry-pick相似于一个定制化的merge,它能够把其它分支上的commit一个个摘下来,合并到以后分支。
废话不多说,间接上实例。
比方我当初有个文件a.c,我在develop分支实现了三个功能模块:feature A,feature B,feature C。如下图:
当初,坑爹的老板只有feature A,feature B,咱们当初用cherry-pick命令间接把feature A,feature B的提交合并到master分支里,如下操作:
能够看到,功能模块feature A,feature B曾经被合并到master分支里。请留神,合并到master分支里的提交哈希值产生了扭转,与原来的不同。
能够看出,cherry-pick命令应用办法很简略,即:
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,人工智能,等等。公众号内回复进群,邀请您进高手如云技术交换群。
最初,最近很多小伙伴找我要Linux学习路线图,于是我依据本人的教训,利用业余时间熬夜肝了一个月,整顿了一份电子书。无论你是面试还是自我晋升,置信都会对你有帮忙!
收费送给大家,只求大家金指给我点个赞!
电子书 | Linux开发学习路线图
也心愿有小伙伴能退出我,把这份电子书做得更完满!
有播种?心愿老铁们来个三连击,给更多的人看到这篇文章
举荐浏览:
- 干货 | 程序员进阶架构师必备资源免费送
- 神器 | 反对搜寻的资源网站