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

开发 前端
cherry-pick类似于一个定制化的merge,它可以把其它分支上的commit一个个摘下来,合并到当前分支。

各位码农朋友们一定有碰到过这样的情况:在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分支里,如下操作:

可以看到,功能模块feature A,feature B已经被合并到master分支里。请注意,合并到master分支里的提交哈希值发生了改变,与原来的不同。

可以看出,cherry-pick命令使用方法很简单,即:

  1. git cherry-pick commitID 

刚刚是一个个提交cherry-pick到master分支,但如果有100个commit要合并到master分支呢?总不能这样一个个操作吧?git一样帮你想到了,它提供了一个区间操作方法。具体来讲是这样的:

  1. 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命令妈妈再也不用担心老板时不时的头脑发热了。

本文授权转载自公众号「良许Linux」。良许,世界500强外企Linux开发工程师,公众号里分享大量Linux干货,欢迎关注!

 

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2021-04-17 17:59:21

Git命令开源

2021-04-14 14:58:35

Git遴选软件开发

2021-04-18 18:03:06

工作树远程版本

2023-11-22 08:26:03

HutoolJava工具集

2022-01-13 22:37:26

VSCode代码 编辑器

2022-09-05 14:17:48

Javascript技巧

2015-12-15 09:50:12

Linux开发效率工具

2021-05-18 15:41:15

开发工具编程

2012-03-14 09:35:56

JavaMaveneclipse

2015-07-22 09:44:07

Android开发Web工具

2019-05-13 14:00:13

CSS框架前端

2012-03-07 09:41:01

Java

2021-05-10 11:06:31

Python工具代码

2023-07-14 10:54:00

Linux命令

2022-03-24 09:34:06

Bootstrap

2020-11-26 12:05:44

Python小工具代码

2021-05-20 11:30:17

Python工具代码

2018-09-27 09:00:00

DjangoPython

2019-06-25 08:42:13

Linux命令指令

2021-01-12 15:17:40

命令Linux操作系统
点赞
收藏

51CTO技术栈公众号