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的時候要保證是本地與遠端程式碼保持一致,才可以正確提交,遠端才不會有其他提交的資訊