更改分支父级

时间:2012-11-05 15:43:53

标签: git

有以下分支结构:

                       master
                     /       \
                BranchA      BranchB

但它应该是:

                 master
                  /           
            BranchA        
               /
         BranchB

有人可以建议如何将BranchB重新挂起作为BranchA的孩子吗?

3 个答案:

答案 0 :(得分:35)

您想使用rebase。在BranchB签出后,执行

git rebase BranchA

答案 1 :(得分:6)

git checkout branchB; git rebase branchA;

会为你做这件事。请记住,如果把它推到别的地方,你就会搞砸历史。

答案 2 :(得分:1)

我建议使用git rebase -i(交互模式)来编辑整个历史记录,您希望将这些提交作为新分支变基,提交消息等的起点。

在您的情况下,如果您希望的情况是:

             master
              /           
        BranchA        
           /
     BranchB

但是在branchA上,您已经有一些提交:

             master
              /           
        BranchA
           |
        commit A1
           |
        commit A2

您可能希望选择A1作为分支B的起点,而不是A2(最新的A的头所在位置),那么git rebase -i可以提供帮助。