我有一個主分支,我試圖從主分支複製到新創建的分支。所有提交應該在新的分支中,除了特定的提交。如何將提交複製到master的新分支,除了特定的提交?
master: c1-c2-c3-c4-c5-c6-c7-c8-c9
newbranch: c1-c2-c4-c5-c7-c8-c9
如上所述,我想複製所有提交到newbranch提交除了說,c3和c6。
此外,我必須保持主分支不變,因爲它是。
我使用Git版本1.8.4
能否請你幫我在這種情況下?
感謝
我有一個主分支,我試圖從主分支複製到新創建的分支。所有提交應該在新的分支中,除了特定的提交。如何將提交複製到master的新分支,除了特定的提交?
master: c1-c2-c3-c4-c5-c6-c7-c8-c9
newbranch: c1-c2-c4-c5-c7-c8-c9
如上所述,我想複製所有提交到newbranch提交除了說,c3和c6。
此外,我必須保持主分支不變,因爲它是。
我使用Git版本1.8.4
能否請你幫我在這種情況下?
感謝
你可以使用cherry-pick
到從一個分支到另一個
複製提交假設c1
,c2
等等都是每個提交的SHA-1,你可以做如下
C1-C2 -c4-c5-c7-c8-c9
git checkout -b newbranch
git cherry-pick c1
git cherry-pick c2
git cherry-pick c4
git cherry-pick c5
git cherry-pick c7
git cherry-pick c8
git cherry-pick c9
對於這個s在特定情況下,您可能更喜歡使用SmartGit等GUI界面,這將允許您用鼠標選擇每個提交,而無需處理SHA1。
另一種可能性是基於它們與master
的距離來引用提交。
例如,您提交的c9
可引用爲master~
,c8
爲master~2
等。
另一種可能性是在創建一個分支提交其中master
是
git checkout -b newbranch master
,然後使用git rebase -i
這將創造一個新的分支,只有選定提交
git rebase -i HEAD~8
的編輯器將打開。只是挑要保留和放棄你要放棄一個的提交,刪除其行
pick 9748201 c2
pick 3b1c9d3 c4
pick 408de72 c5
pick eef6862 c7
pick bffc3a9 c8
pick 669920f c9
然後保存,瞧,你的newbranch
將是master
一個副本,而不c3
和c6
nte'櫻桃挑'也需要修訂範圍參數。將你的7個命令合併爲3 –
谷歌的櫻桃挑' – zerkms