1. 程式人生 > >Git cherry-pick

Git cherry-pick

date cnblogs 新功能 功能 pre nbsp git -s clas

  假設你在dev01分支開發了2個新功能(A,B),對應2個commitA,commitB,但是上線前被告知只能上線功能A,此時可以:

1. 新建1個分支dev02

2. 將dev01上功能A對應代碼cherry-pick到dev02上,dev02就有了功能A對應的代碼

  • cherry-pick的用法:
  • $ git cherry-pick 6bbf6b4 #6bbf6b4為dev01上的commitId
  • 舉個栗子:

   把dev01分支上的commit(增加1個文件),cherry-pick應用到dev02分支上。

  • /code/lianxi (dev01)
    $ git commit -m "add 1.txt"
    #dev01分支提交了1個commit 6bbf6b4 [dev01 6bbf6b4] add 1.txt file changed, 1 insertion(+) create mode 100644 1.txt /code/lianxi (dev01) $ git log commit 6bbf6b4568d3b657dcfe06f06a69bd250c769942 #commit 信息 Author: a Date: Wed Jun 7 17:45:28 2017 +0800 add 1.txt /code/lianxi (dev01) $ git checkout dev02 #切換到dev02分支操作
    Switched to branch
    ‘dev02‘ /code/lianxi (dev02) $ ls #dev02下此時沒有1.txt /code/lianxi (dev02) $ git cherry-pick 6bbf6b4 #將commit6bbf6b4 應用到dev02上
     [dev02 5e716f5] add 1.txt Date: Wed Jun 7 17:45:28 2017 +0800 file changed, 1 insertion(+) create mode 100644 1.txt 

    /code/lianxi (dev02)
    $ git log #在dev02會產生1個新的commitId,內容為commit 6bbf6b4改動的內容
    commit 5e716f52a541098afd0a0b74551878d119f97d14 
    Author: a
    Date: Wed Jun
    7 17:45:28 2017 +0800
    add
    1.txt

    /code/lianxi (dev02)
    $ ls #dev02也有了1.txt
    1.txt

Git cherry-pick