当上面有多个分支时,如何在过去的两个任意提交之间注入一个提交?

时间:2018-12-02 21:22:59

标签: git git-rebase

问题是该问题的扩展:How to inject a commit between some two arbitrary commits in the past?

假设我在仅限本地的分支上具有以下提交历史记录:

A -- B -- C -- D  
            \- E

如何在A和B之间插入新的提交,并使D和E都保持在C之上?

2 个答案:

答案 0 :(得分:0)

您可以在第一个分支上执行iteractive rebase以注入您的提交,然后执行rebase onto来将更改应用于您的另一个分支。

假设您拥有:

A -- B -- C -- D  
           \-- E

在将您的提交注入到您的第一个分支之后(在How to inject a commit between some two arbitrary commits in the past之后),您将得到以下内容:

A -- A2 -- B' -- C' -- D'
 \-- B  -- C  -- E

与其他分支机构相比,您可以执行rebase --onto来应用更改:

  

git rebase-进入C'E branch2

所以您的最终结果将是:

A -- A2 -- B' -- C' -- D'
                   \-- E'

答案 1 :(得分:0)

停止疯狂:),只需将提交添加到D,然后将mergecherry-pick提交到E

A -- B -- C -- D -- X 
           \-- E -- X