cherry-pick 可以局部代碼合並。
cherry-pick不僅可以用在不同分支之間,還可以用在同一個分支上。
比如說你在某一個向某個分支中添加了一個功能,后來處於某種原因把它給刪除了,然而后來某一天你又要添加上這個功能了, 這時候就可以使用cherry-pick把添加那個功能的commit, 再重演一遍。
不同分支之前,傳遞代碼,有點意思。
commit dbb9d196fb38fe676fdfea9aeee6b0bc4512209a
Author: jiqing <jiqing@caomall.net>
Date: Wed May 16 10:37:49 2018 +0800
規格處理
Admin/Lib/Action/ProductAction.class.php | 9 +++++++--
Admin/Tpl/Product/add.html | 12 ++++++------
2 files changed, 13 insertions(+), 8 deletions(-)
這個是分支A中的功能調整,分支B中也需要這樣的功能,怎么辦呢?
難不成,再寫一遍?又或者再復制一遍?
不需要的,使用cherry-pick就可以了。
git cherry-pick dbb9d196fb38fe676fdfea9aeee6b0bc4512209a
[laobandianqi 3eb652d] 規格處理
Date: Wed May 16 10:37:49 2018 +0800
2 files changed, 13 insertions(+), 8 deletions(-)
我們發現,分支B中會進行一模一樣的操作。
git log
commit 3eb652de360e67dae1dfb2f7692396adad26ec65
Author: jiqing <jiqing@caomall.net>
Date: Wed May 16 10:37:49 2018 +0800
規格處理
就連生成的commit日志都是一樣的,說明,它將commit重新在分支B上執行了一遍。
很好很強大,很喜歡。
使用之前,記得git fetch
jiqing@Ubuntu:/home/wwwroot/default/laobandianqi/store$ git fetch
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 6 (delta 0), reused 0 (delta 0)
展開對象中: 100% (6/6), 完成.
來自 http://106.14.59.204/zhubin/store
dbb9d19..c126d03 yanglu -> origin/yanglu
jiqing@Ubuntu:/home/wwwroot/default/laobandianqi/store$ git cherry-pick c126d03041af4ab49a4104168e158ba869f6c9d5
[laobandianqi 5b3cd36] 購物車添加移除,增加規格
Date: Wed May 16 11:28:45 2018 +0800
1 file changed, 1 insertion(+)
