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

 更新时间:2020年09月30日 08:36:46   作者:良许Linux  
这篇文章主要介绍了git 一个可以提高开发效率的命令:cherry-pick,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

各位码农朋友们一定有碰到过这样的情况:在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神操作!

到此这篇关于git 一个可以提高开发效率的命令:cherry-pick详解的文章就介绍到这了,更多相关git cherry-pick命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Chrome浏览器断点调试技巧(非常详细!)

    Chrome浏览器断点调试技巧(非常详细!)

    在我们日常开发中,常常利用chrome强大的控制台Sources下面进行代码断点调试,这篇文章主要给大家介绍了关于Chrome浏览器断点调试技巧的相关资料,需要的朋友可以参考下
    2023-09-09
  • es滚动查询分析和使用步骤示例详解

    es滚动查询分析和使用步骤示例详解

    ES在进行普通的查询时,默认只会查询出来10条数据,我们通过设置es中的size可以将最终的查询结果从10增加到10000,这篇文章主要介绍了es滚动查询分析和使用步骤,需要的朋友可以参考下
    2023-09-09
  • 使用git处理github中提交有冲突的pull request的问题

    使用git处理github中提交有冲突的pull request的问题

    这篇文章主要介绍了使用git处理github中提交有冲突的pull request,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • Git建立本地仓库并上传到Gitee的详细步骤

    Git建立本地仓库并上传到Gitee的详细步骤

    这篇文章主要介绍了Git建立本地仓库并上传到Gitee,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • git提交报错pre -commit hook failed (add --no-verify)问题及解决

    git提交报错pre -commit hook failed (add 

    这篇文章主要介绍了git提交报错pre -commit hook failed (add --no-verify)问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Git 教程之标签详解

    Git 教程之标签详解

    本文主要介绍Git 标签的内容知识,这里整理了相关资料及详细说明Git 相关命令用法,有兴趣的小伙伴可以参考下
    2016-09-09
  • HTTP请求 GET与POST方法的区别

    HTTP请求 GET与POST方法的区别

    HTTP定义了与服务器交互的不同方法,最基本的方法是 GET 和 POST.HTTP-GET和HTTP-POST是使用HTTP的标准协议动词,用于编码和传送变量名/变量值对参数,并且使用相关的请求语义。
    2009-12-12
  • 基于 Serverless +企业微信打造 nCoV 疫情监控小助手

    基于 Serverless +企业微信打造 nCoV 疫情监控小助手

    这篇文章主要介绍了基于 Serverless +企业微信打造 nCoV 疫情监控小助手,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • IE 浏览器安全级别详情及区别小结

    IE 浏览器安全级别详情及区别小结

    排查问题时,定位到可能和当前浏览器的安全级别设置有关,顺便整理了下Windows 7下IE9安全级别的详情内容,及各安全级别下的默认设置差异
    2016-01-01
  • 手把手教你使用Git(图文教程)

    手把手教你使用Git(图文教程)

    这篇文章主要介绍了手把手教你使用Git(图文教程),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10

最新评论