將某一提交合并到指定分支中
git cherry-pick <commitHash>
一、基本用法
舉例:代碼倉庫有master
和feature
兩個分支
a - b - c - d Master
\
e - f - g Feature
現(xiàn)在將提交f
應用到master
分支诫肠。
# 切換到 master 分支
$ git checkout master
# Cherry pick 操作
$ git cherry-pick f
上面的操作完成以后奥务,代碼庫就變成了下面的樣子泄私。
a - b - c - d - f Master
\
e - f - g Feature
從上面可以看到房揭,master
分支的末尾增加了一個提交f备闲。
git cherry-pick
命令的參數(shù),不一定是提交的哈希值捅暴,分支名也是可以的恬砂,表示轉移該分支的最新提交。
$ git cherry-pick feature
上面代碼表示將feature
分支的最近一次提交伶唯,轉移到當前分支觉既。
二、轉移多個提交
Cherry pick 支持一次轉移多個提交乳幸。
$ git cherry-pick <HashA> <HashB>
上面的命令將 A 和 B 兩個提交應用到當前分支。這會在當前分支生成兩個對應的新提交钧椰。
如果想要轉移一系列的連續(xù)提交粹断,可以使用下面的簡便語法。
$ git cherry-pick A..B
上面的命令可以轉移從 A 到 B 的所有提交嫡霞。它們必須按照正確的順序放置:提交 A 必須早于提交 B瓶埋,否則命令將失敗,但不會報錯诊沪。
注意养筒,使用上面的命令,提交 A 將不會包含在 Cherry pick 中端姚。如果要包含提交 A晕粪,可以使用下面的語法。
$ git cherry-pick A^..B
三渐裸、代碼沖突
如果操作過程中發(fā)生代碼沖突巫湘,Cherry pick 會停下來,讓用戶決定如何繼續(xù)操作昏鹃。
(1) --continue
用戶解決代碼沖突后尚氛,第一步將修改的文件重新加入暫存區(qū)(git add .),第二步使用下面的命令洞渤,讓 Cherry pick 過程繼續(xù)執(zhí)行阅嘶。
$ git cherry-pick --continue
(2)--abort
發(fā)生代碼沖突后箩做,放棄合并焕济,回到操作前的樣子勒葱。
(3)--quit
發(fā)生代碼沖突后以蕴,退出 Cherry pick妇智,但是不回到操作前的樣子值戳。
android studio git面板操作
舉例:有test1
和test2
兩個分支劫流,test2
中有5次提交
as git操作面板
只將44
這一提交合并到test1
中:
(1) 先檢出test1
(2)選中test2
中的44
點擊“精選”
漢化過的
(3)有沖突的解決沖突庇楞,(如果不想更改報沖突的類捏卓,就點擊“接收您的”)
image.png
以上完成极祸。