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

作者:良许Linux 时间:2022-03-03 01:40:22 

各位码农朋友们一定有碰到过这样的情况:在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。如下图:

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

现在,坑爹的老板只要feature A,feature B,我们现在用cherry-pick命令直接把feature A,feature B的提交合并到master分支里,如下操作:

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

可以看到,功能模块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则会。这样的话上面的需求可以如下操作来实现:

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

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

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

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

来源:https://www.cnblogs.com/yychuyu/p/13751649.html

标签:git,cherry-pick,命令
0
投稿

猜你喜欢

  • 利用ajax制作在线翻译聊天室

    2007-12-28 21:44:00
  • django的model操作汇整详解

    2022-05-16 03:59:46
  • 教你如何在Pycharm中导入requests模块

    2023-05-03 13:10:14
  • 对matplotlib改变colorbar位置和方向的方法详解

    2023-07-13 21:00:04
  • 对pandas的层次索引与取值的新方法详解

    2023-01-20 00:39:55
  • asp获取完整url地址代码

    2010-03-22 14:25:00
  • PLSQL导入dmp文件的详细完整步骤

    2023-06-26 11:45:32
  • Python input输入超时选择默认值自动跳过问题

    2023-02-22 07:22:40
  • Python编程pydantic触发及访问错误处理

    2021-05-19 20:49:07
  • 怎样使用 SQL Server 数据库嵌套子查询

    2009-02-05 15:26:00
  • Python jiaba库的使用详解

    2022-05-11 22:20:46
  • ASP中使用Session变量的优缺点

    2007-10-01 18:02:00
  • 用pywin32实现windows模拟鼠标及键盘动作

    2023-07-04 21:26:30
  • python 列表元素左右循环移动 的多种解决方案

    2023-06-15 06:21:45
  • Python基于Matplotlib库简单绘制折线图的方法示例

    2021-10-26 15:01:12
  • asp如何实现无组件上传二进制文件?

    2010-06-03 10:09:00
  • 如何为Access数据库表添加日期或时间戳

    2008-11-21 12:46:00
  • 完美的js验证网址url(正则表达式)

    2008-06-07 09:36:00
  • Python装饰器详细介绍

    2022-09-28 17:52:16
  • 在ASP.NET 2.0中操作数据之四十:自定义DataList编辑界面

    2023-07-07 04:45:20
  • asp之家 网络编程 m.aspxhome.com