git 一個能夠提升開發效率的命令:cherry-pick

各位碼農朋友們必定有碰到過這樣的狀況:在develop分支上辛辛苦苦擼了一通代碼後開發出功能模塊A,B,C,這時老闆過來講,年青人,咱們如今先上線功能模塊A,B。你必定內心一萬隻草泥馬奔騰而過,但爲了混口飯吃必須得按老闆的意思辦事啊。git

怎麼辦?一個辦法就是,從新建一個分支,而後再把功能模塊C回退,留下功能模塊A,B。這種作法不是不行,可是有更好的辦法,那就是git所提供的cherry-pick功能。學習

cherry-pick相似於一個定製化的merge,它能夠把其它分支上的commit一個個摘下來,合併到當前分支。人工智能

廢話很少說,直接上實例。code

好比我如今有個文件a.c,我在develop分支完成了三個功能模塊:feature A,feature B,feature C。以下圖:blog

如今,坑爹的老闆只要feature A,feature B,咱們如今用cherry-pick命令直接把feature A,feature B的提交合併到master分支裏,以下操做:開發

能夠看到,功能模塊feature A,feature B已經被合併到master分支裏。請注意,合併到master分支裏的提交哈希值發生了改變,與原來的不一樣。it

能夠看出,cherry-pick命令使用方法很簡單,即:ast

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,人工智能,等等。公衆號內回覆進羣,邀請您進高手如雲技術交流羣。

img


公衆號:良許Linux

有收穫?但願老鐵們來個三連擊,給更多的人看到這篇文章