我正在基于分支B的分支C,然后是分支A:
A---B---C
是否有任何命令可以像这样直接基于分支A创建分支C:
A---B
\
--C
我尝试过git rebase A
,但是它不起作用。
答案 0 :(得分:1)
git rebase --onto A B C
说明:
在rebase命令中,您可以定义:
命令是
git rebase --onto TargetBranchToRebaseTo UpstreamBranch BranchToRebase
实际上,您可以在git help rebase
答案 1 :(得分:0)
这就是我要做的:
git checkout C
git checkout -b rebaseTemp
git rebase -i A
在交互式rebase中,删除所有与分支B对应但不属于分支C的提交(即,在两者之间共享的提交)。完成变基,然后您将有一个新分支(rebaseTemp),其中包含我认为您想要的东西。然后,您可以将A合并到rebaseTemp中(这将导致快速合并)。
在这种情况下,分支可视化工具(即gitk
)非常有用,因此您可以查看共享的提交。
答案 2 :(得分:0)
Git在rebase
中有一个内置选项,可以做到这一点:
git checkout C
git rebase --onto A B
这会将B之后的所有提交重新定位为C,以便它们从A而不是B开始。