1. 程式人生 > >git不同分支局部代碼合並 git cherry-pick

git不同分支局部代碼合並 git cherry-pick

change compress 移除 cti IT oba 調整 php HA

cherry-pick 可以局部代碼合並。

cherry-pick不僅可以用在不同分支之間,還可以用在同一個分支上。

比如說你在某一個向某個分支中添加了一個功能,後來處於某種原因把它給刪除了,然而後來某一天你又要添加上這個功能了, 這時候就可以使用cherry-pick把添加那個功能的commit, 再重演一遍。

不同分支之前,傳遞代碼,有點意思。

commit dbb9d196fb38fe676fdfea9aeee6b0bc4512209a
Author: jiqing <[email protected]>
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 <[email protected]>
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(+)

git不同分支局部代碼合並 git cherry-pick