2014-10-07 63 views
1

我目前正在與此混帳樹工作/工作流程開始最後的一個新的分支的新分支提交

A [master] 
\ 
    B ------------- D [develop] 
    \   /
    C1 -- C2 -- C3 -- C4 [feature1] 

現在我想爲第二特徵的新的分支,但我忘了檢查出新分支和我向Feature1分支提交新代碼。

A [master] 
\ 
    B ------------- D [develop] 
    \   /
    C1 -- C2 -- C3 [feature2] 
       \ 
        C4 [feature2] 

所以我現在要做到這一點,除去C4形成功能1領域,並把它添加到功能2領域這仍然是不存在的。 C4還沒有推到遙遠的地方,項目的其餘部分是。

+1

您的ASCII圖形不清楚/不明確。請閱讀[我的答案]頂部的評論(http://stackoverflow.com/questions/25488138/move-initial-commits-off-master-to-another-branch-in-git/25490288#25490288 ),並更正你的圖表,所以我們知道你的分支正在指向哪裏。只有這樣人們才能夠幫助你。 – Jubobs 2014-10-07 16:33:17

回答

1

執行以下操作:

  1. 確保你有一個乾淨的工作狀態(創建一個存儲如果需要)。在這個階段,你的回購仍然是這樣的:

    A [master] 
    \ 
        B ------------- D [develop] 
        \   /
        C1 -- C2 -- C3 
           \ 
            C4 [feature1] 
    
  2. 創建並檢查了一個名爲feature2分支指向同一提交的feature1做:

    git checkout -b feature2 feature1 
    

    你的回購然後將看起來像這樣的:

    A [master] 
    \ 
        B ------------- D [develop] 
        \   /
        C1 -- C2 -- C3 
           \ 
            C4 [HEAD=feature2,feature1] 
    
  3. 一個重置feature1分公司承諾:

    git checkout feature1 
    git reset --hard HEAD^ 
    

    那麼你的回購將是這樣的:

    A [master] 
    \ 
        B ------------- D [develop] 
        \   /
        C1 -- C2 -- C3 [HEAD=feature1] 
           \ 
            C4 [feature2] 
    
  4. 如果你想繼續在feature2分公司工作,檢查出來(也彈出你最後的藏匿處,如果您創建一個):

    git checkout feature2 
    

    那麼你將回購是這樣的:

    A [master] 
    \ 
        B ------------- D [develop] 
        \   /
        C1 -- C2 -- C3 [feature1] 
           \ 
            C4 [HEAD=feature2] 
    
相關問題