應(yīng)用背景:假設(shè)現(xiàn)在有兩個(gè)分支:dev_01, dev_02. 如果我想把dev_01分支上的某幾個(gè)commit合并到dev_02分支, 那么怎么辦呢?
這就是cherry-pick的工作了。cherry-pick會(huì)撿選某些commit, 即把某些commit的更改重新在另一分支上重新提交一遍. 對于我們的應(yīng)用背景而言,就是把分支dev_01上某幾個(gè)commit的更改在分支dev_02上再提交一遍。那么上述問題的解決方案如下:
假設(shè)我們需要將dev_01上的兩個(gè)commit 合并到dev_02上,兩個(gè)commit的commit id 分別如下:
那我們可以這樣寫:多個(gè)commit-hash使用空格分割, commit-hash最好按提交時(shí)間先后排列, 即最先提交的commit放在前面.
注意:上面這條cherry-pick命令每揀選一個(gè)commit就會(huì)提交一次生成一個(gè)新的commit id。 如果我們想讓每個(gè)commit 揀選后暫緩提交,等到所有commit都揀選完成后,自己手動(dòng)commit,應(yīng)該怎么辦呢?答案是用-n 選項(xiàng):
這樣,當(dāng)git cherry-up后,這兩個(gè)commit上的更改就被merge到本地的dev_02分支了,此時(shí)這些更改就像是你再dev_02分支上自己手動(dòng)添加的一樣,注意此時(shí)這些更改并沒有被提交。
執(zhí)行g(shù)it status 會(huì)列出這些改動(dòng)。
此時(shí),就可以按正常流程(git commit, git push)來提交改動(dòng)了




