各位碼農(nóng)朋友們一定有碰到過這樣的情況:在develop分支上辛辛苦苦擼了一通代碼后開發(fā)出功能模塊A,B,C,這時老板過來說,年青人,我們現(xiàn)在先上線功能模塊A,B。你一定心里一萬只草泥馬奔騰而過,但為了混口飯吃必須得按老板的意思辦事啊。
怎么辦?一個辦法就是,重新建一個分支,然后再把功能模塊C回退,留下功能模塊A,B。這種做法不是不行,但是有更好的辦法,那就是git所提供的cherry-pick功能。
cherry-pick類似于一個定制化的merge,它可以把其它分支上的commit一個個摘下來,合并到當前分支。
廢話不多說,直接上實例。
比如我現(xiàn)在有個文件a.c,我在develop分支完成了三個功能模塊:feature A,feature B,feature C。如下圖:
現(xiàn)在,坑爹的老板只要feature A,feature B,我們現(xiàn)在用cherry-pick命令直接把feature A,feature B的提交合并到master分支里,如下操作:
可以看到,功能模塊feature A,feature B已經(jīng)被合并到master分支里。請注意,合并到master分支里的提交哈希值發(fā)生了改變,與原來的不同。
可以看出,cherry-pick命令使用方法很簡單,即:
git cherry-pick commitID
剛剛是一個個提交cherry-pick到master分支,但如果有100個commit要合并到master分支呢?總不能這樣一個個操作吧?git一樣幫你想到了,它提供了一個區(qū)間操作方法。具體來講是這樣的:
git cherry-pick commit1..commit100
但是要注意,這是一個左開右閉的操作,也就是說,commit1不會被合并到master分支,而commit100則會。這樣的話上面的需求可以如下操作來實現(xiàn):
注意:上面講到cherry-pick命令每揀選一個commit就會提交一次生成一個新的commit id。 如果我們想讓每個commit 揀選后暫緩提交,等到所有commit都揀選完成后,自己手動commit,應該怎么辦呢?答案是用-n 選項:
怎樣,是不是很簡單?學會了cherry-pick命令媽媽再也不用擔心老板時不時的頭腦發(fā)熱了??鞉呙柘路蕉S碼和良許一起學習更多git神操作!
到此這篇關于git 一個可以提高開發(fā)效率的命令:cherry-pick詳解的文章就介紹到這了,更多相關git cherry-pick命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
標簽:哈爾濱 鄂爾多斯 襄陽 遵義 錫林郭勒盟 雙鴨山 丹東 莆田
巨人網(wǎng)絡通訊聲明:本文標題《git 一個可以提高開發(fā)效率的命令:cherry-pick詳解》,本文關鍵詞 git,一個,可以,提高,開發(fā),;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。