git⼀个可以提⾼开发效率的命令:cherry-pick详解
各位码农朋友们⼀定有碰到过这样的情况:在develop分⽀上⾟⾟苦苦撸了⼀通代码后开发出功能模块A,B,C,这时⽼板过来说,年青⼈,我们现在先上线功能模块A,B。你⼀定⼼⾥⼀万只奔腾⽽过,但为了混⼝饭吃必须得按⽼板的意思办事啊。
怎么办?⼀个办法就是,重新建⼀个分⽀,然后再把功能模块C回退,留下功能模块A,B。这种做法不是不⾏,但是有更好的办法,那就是git所提供的cherry-pick 功能。
git使用详解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.mit100
但是要注意,这是⼀个左开右闭的操作,也就是说,commit1不会被合并到master分⽀,⽽commit100则会。这样的话上⾯的需求可以如下操作来实现:
注意:上⾯讲到cherry-pick命令每拣选⼀个commit就会提交⼀次⽣成⼀个新的commit id。如果我们想让每个commit 拣选后暂缓提交,等到所有commit都拣选完成后,⾃⼰⼿动commit,应该怎么办呢?答案是⽤-n 选项:
怎样,是不是很简单?学会了cherry-pick命令妈妈再也不⽤担⼼⽼板时不时的头脑发热了。快扫描下⽅⼆维码和良许⼀起学习更多git神操作!
到此这篇关于git ⼀个可以提⾼开发效率的命令:cherry-pick详解的⽂章就介绍到这了,更多相关git cherry-pick命令内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论