当前位置: 首页 > Linux

git一个可以提高开发效率的命令:cherry-pick

时间:2023-04-06 11:20:28 Linux

各位码农肯定都遇到过这样的情况:在develop分支上努力写代码后,开发出了功能模块A、B、C,此时老板走过来说,年轻人,我们先推出功能模块A和B。你心里一定有一万匹泥马在奔腾,但是为了生活,你必须按照老板的意愿做事。该怎么办?一种方法是重建一个分支,然后回滚功能模块C,留下功能模块A和B。这种方法不是不可以,但是有更好的方法,那就是git提供的cherry-pick功能。Cherry-pick类似于自定义合并,可以将其他分支上的提交一个一个地挑出来合并到当前分支中。话不多说,我们直接上例子。比如我现在有一个文件a.c,我在develop分支完成了三个功能模块:featureA,featureB,featureC。如下图所示:现在坑爹的boss只需要featureA和featureB、现在我们使用cherry-pick命令直接将featureA和featureB的提交合并到master分支中。操作如下:可以看到功能模块featureA和featureB已经合并到master分支中了。请注意,合并到master分支中的提交的哈希值与原来的有所不同。可以看出cherry-pick命令的使用方法很简单,就是:gitcherry-pickcommitID只是将cherry-pick一个一个提交到master分支,但是如果有100个commit要合并进去怎么办主分支?总不能这样一一做吧?Git也帮你想到了,它提供了区间操作的方法。具体看起来是这样的:gitcherry-pickcommit1..commit100但是需要注意的是,这是一个左开右闭的操作,也就是说commit1不会合并到master分支,而是commit100将要。在这种情况下,上述需求可以实现如下:注:上面提到cherry-pick命令每pick一个commit都会提交一个commit,生成一个新的commitid。如果我们想在选择后暂停提交每个commit,等到所有的commit都被选中后再手动提交怎么办?答案是-n选项:怎么样,是不是很简单?学会cherry-pick命令后,妈妈再也不用担心老大时不时的脑袋发烫了。快扫描下方二维码,和良旭一起学习更多git操作吧!更多精彩内容,关注公众号良旭Linux,在公众号回复1024免费领取5T技术资料,包括:Linux、C/C++、Python、树莓派、嵌入式、Java、人工智能等。公众号回复加群,邀你加入达人如云技术交流群。最后,最近有很多朋友找我要一份Linux学习路线图,所以我结合自己的经验,利用业余时间熬夜一个月,整理了一本电子书。无论你是面试还是自我提升,相信都会对你有所帮助!免费送给大家,只求大家给我点个赞!电子书|LinuxDevelopmentLearningRoadmap也希望有小伙伴可以和我一起把这本电子书做得更完美!获得?希望老铁们来个三连击,让更多人看到这篇文章。推荐阅读:干货|程序员和高级架构师免费发送工件的必备资源|支持搜索的资源网站