我有以下回购结构:
MA ---o---o---o---T1-
|
B1 \---o--
|
B2 \---o---o
其中MA
为master
,B1
和B2
为分支,o
为提交,-
为开发且T1
是一些时间点
现在您看到我在MA
上完成第一次提交后,我创建了一个新的分支B1
。然后处理B1
,然后创建B2
并继续处理它。
我的问题是,我已经在MA
之后再做了两次提交我创建了分支。但我希望整个分支发生在T1
时间 - 以便我的B1
以所有3个主提交为基础。
这里有几个问题:
B1
?B2
,B1
将会发生什么?我想保留B2
以B1
作为基础提交答案 0 :(得分:1)
当然:重新定义Lienzo
,然后是B1
在执行此操作之前,您只需要标记旧的B1状态:
B2
在此阶段,git checkout B1
git branch oldB1
git rebase MA
保持不变:
B2
现在,MA ---o---o---o---T1---o B1
|
oldB1 \---o
|
B2 \---o---o
将移动rebase --onto
次提交(B2
HEAD - 排除 - 最高为oldB1
HEAD - 包括 - )。< / p>
B2
这将给出:
git checkout B2
git rebase --onto B1 oldB1 B2
git branch -d oldB1