[英]How to copy commits to a new branch from master, except specific commits?
我有一個master分支,正在嘗試將提交從master復制到一個新創建的分支。 除特定的提交外,所有提交都應位於新分支中。
master: c1-c2-c3-c4-c5-c6-c7-c8-c9
newbranch: c1-c2-c4-c5-c7-c8-c9
如上所述,除c3和c6外,我想將所有提交復制到newbranch。
另外,我必須保持master分支不變。
我正在使用git版本1.8.4
在這種情況下,您能幫我什么忙嗎?
謝謝
您可以使用cherry-pick
將提交從分支復制到另一個
假設c1
, c2
等都是每個提交的sha1,則可以執行以下操作
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
對於這種特定情況,您可能更喜歡使用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
,您的新newbranch
將是不帶c3
和c6
的master
副本
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.