乐趣区

关于linux:git-一个可以提高开发效率的命令cherrypick

各位码农敌人们肯定有碰到过这样的状况:在 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 神操作!

更多精彩内容,请关注公众号 良许 Linux,公众内回复 1024 可收费取得 5T 技术材料,包含:Linux,C/C++,Python,树莓派,嵌入式,Java,人工智能 ,等等。公众号内回复 进群,邀请您进高手如云技术交换群。


最初,最近很多小伙伴找我要Linux 学习路线图,于是我依据本人的教训,利用业余时间熬夜肝了一个月,整顿了一份电子书。无论你是面试还是自我晋升,置信都会对你有帮忙!

收费送给大家,只求大家金指给我点个赞!

电子书 | Linux 开发学习路线图

也心愿有小伙伴能退出我,把这份电子书做得更完满!

有播种?心愿老铁们来个三连击,给更多的人看到这篇文章

举荐浏览:

  • 干货 | 程序员进阶架构师必备资源免费送
  • 神器 | 反对搜寻的资源网站
退出移动版