簡體   English   中英

除了特定的提交,如何將提交從master復制到新分支?

[英]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 提交從分支復制到另一個

假設c1c2等都是每個提交的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將是不帶c3c6master副本

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM