原理
學了一下cherry-pick的用法, 我把這個命令稱之爲摘櫻桃。一顆一顆的櫻桃就像一個一個的commit記錄,摘櫻桃就是挑選某個commit進行合併的過程。 如下圖所示, 有兩個代碼分支,一個是Master,另外一個是Feature分支。
a - b - c - d Master
\
e - f - g Feature
現在想從Feature分支中只選擇一個f 到master,則可以使用如下命令:
# 切換到 master 分支
$ git checkout master
# Cherry pick 操作
$ git cherry-pick f
合併完之後,如下所示
a - b - c - d - f Master
\
e - f - g Feature
總結
協同開發過程中,往往進行合併代碼分支,而合併的時候,有一種需求就是指向合併其中的一個特性,而非整個分支,這種情況下使用cherry-pick就比較合適。
參考
https://www.ruanyifeng.com/blog/2020/04/git-cherry-pick.html