1. 程式人生 > >git cherry-pick命令使用

git cherry-pick命令使用

用途:重新生成commitID,在原先其他分支或者本地分支的其他commit之上,然後git push到遠端

1、在分支A重新提交我在分支B做的一次功能修改,並在分支A提交。

2、另一種情況在分支A(在未跟新程式碼的情況下修改了好幾個功能,本地有好幾個commit提交),我不能向遠端用(git push origin 本地分支 遠端分支),我往往會用先用git reset --HARD 到最新mergedID 然後git pull再用git cherry-pick(想要遠端提交某個功能的commitID)生成新的commitID,然後再git push 到遠端

用途一:

在本地分支B上

①git log

注:選擇自己想要在分支A提交的功能,複製分支B的commitID

②git checkout <branchA>

注:切換分支到branchA

③git cherry-pick <commitId>

      注:commitID為之前在分支B複製的那個commitID,會在當前分支生成一個新的commit(沒有衝突的情況下)

④git push origin <branchA> <originBranch>

完成

用途二:

在本地分支A上

①我本地修改已經完成,不知道我本地是不是最新的程式碼

然後我 git commit -m “提交資訊”  //把我的修改生成了一個commitID

②git log 

發現我的程式碼並不是最新merge的基礎上修改的

③git reset --hard <遠端最新mergedID>

④git pull origin <originBranch>一下跟新遠端程式碼

⑤git reflog  

   注:看我修改的那個commitID 複製一下

⑥git cherry-pick <commitID>

注:我複製過的那個

⑦git push origin <branchA> <originBranch>

完成

eg:

溫馨提示:每次的使用git cherry-pick的時候要保證是本地與遠端程式碼保持一致,才可以正確提交,遠端才不會有其他提交的資訊