重新设置分支而不带父分支

时间:2019-06-25 08:50:12

标签: git

首先,我认为这是重复的;我想我想做的事情有个名字,但是我什么都找不到。

想象我有提交:

a1 -- a2 -- b1 -- b2 -- c1 -- c2

其中abc是分支。我正在尝试获取历史记录,以便于:

     - b1 -- b2
   /
a1 -- a2 -- c1 -- c2

但是,如果我尝试将c改写到a上,那么我也可以得到b

有什么好方法吗?

1 个答案:

答案 0 :(得分:4)

这些是多个步骤。基本操作是git rebase --onto <newbase> <oldbase> <tip>(其中newbaseoldbase可以是提交哈希或分支名称,但是tip应该是分支名称)。

我假设您有分支bc分别指向提交b2c2

  1. git rebase --onto a2 b2 c

    结果:

              - b1 -- b2
            /
    a1 -- a2 -- c1 -- c2
    

    请注意,b1b2保持不变,我只需要在视觉上将它们向上移动。

  2. git rebase --onto a1 a2 b

    结果:

        - b1 -- b2
      /
    a1 -- a2 -- c1 -- c2