簡體   English   中英

改變Git Parent Branch

[英]Change Git Parent Branch

假設我們有一個分支結構,如:

develop   -> --- a --- b --- c
                  \           \
feature 1 ->       \           --- d --- e
                    \    
feature 2 ->         --- f --- g

在對特征1進行工作之后,我認為它確實應該作為特征2的子任務分支。

功能1是否有一種方法可以“撤消”開發的分支,而是在保留其提交的同時分支功能2?

例:

develop   -> --- a --- b --- c    
                  \    
feature 1 ->       \         --- d --- e
                    \       /
feature 2 ->         f --- g

最簡單的解決方案是使用帶有--onto標志的rebase,如Git書中所述 命令:

git rebase --onto feature2 develop feature1

將在feature1之上的developfeature2上的feature2 rebase提交。

通常你會看到git rebase這類東西,但是它不會起作用,因為從feature1到feature2的rebase將包含你不想要的提交b和c。

Willem建議使用cherry-pick可能是要走的路。

創建一個新分支:

git checkout -b feature1b feature1

Cherry選擇了感興趣的提交(這里我說的是“feature1的最后兩個提交”,但你可以使用實際的提交ID等指定提交范圍):

git cherry-pick feature1~2..feature1

此時,分支feature1b匹配您想要的歷史記錄。 您可以根據需要執行一些可選的清理:

刪除舊分支:

git branch -D feature1

重命名新分支:

git branch -m feature1

暫無
暫無

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

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