2010-08-17 104 views
3

我創建了一個關閉master的「特性」分支,並且工作了很長時間。然後,我提取了最新的主分支提交,並重新提交了我的「特性」分支提交。然後我把「功能」合併到了主人。但是,我忘記了合併並繼續進入「特性」分支。我現在想要在新分支中提交這些提交,因此現在我想創建另一個分支「feature_2」,該分支基於自從上次合併到master後的「feature」分支上的提交。有什麼建議麼?在另一個分支上從選定的提交中創建一個git分支

回答

1

考慮到:

  • feature已經引用提交自上次合併爲master
  • 分支是公正的指針
 
x--x--x (master) 
     \ 
     y--y--y (feature) 

,您可以簡單:

  • git checkout feature
  • git checkout -b feature2
  • git branch -f feature master
    (提供無提交由於feature合併物上master製造)
 
x--x--x (master, feature) 
     \ 
     y--y--y (feature2) 

所有的主站的提交被feature(其被複位到不再被引用其中master爲),但現在可通過feature2(其中feature在被重置爲master之前)訪問


的OP Chip Castle補充說:

我有誰曾分公司合併到主從那時起,所以我不希望合併我已經合併了同一提交3個其他團隊成員。
我一直希望能給出一個SHA範圍,僅用於我需要從特性到新分支的提交。有沒有辦法做到這一點或更好的方式?

所以情況是:

 
x--x--x--y'--y' (master, updated after a fetch from other repo) 
     \ 
     y'--y'--y--y (feature, with y' being already merged, 
         and y being the commits I need) 

然後,你可以簡單地重訂上主的頂部特徵:相同的提交將被忽略。

+0

我有3個其他團隊成員從那時起將他們的分支合併爲主,因此我不想合併已合併的相同提交。我只希望給出一個SHA範圍,僅用於我需要從特性到新分支的提交。有沒有辦法做到這一點或更好的方式? – 2010-08-17 13:22:29

+0

@Chip:我已經更新了我的答案,但如果我誤解了您的具體情況,請不要猶豫在這裏留下評論,並在必要時使用說明當前回購狀態的圖表編輯您的問題。 – VonC 2010-08-18 06:41:13

+0

完美。這對我行得通。謝謝! – 2010-08-21 01:30:25

相關問題