有以下分支结构:
master
/ \
BranchA BranchB
但它应该是:
master
/
BranchA
/
BranchB
有人可以建议如何将BranchB重新挂起作为BranchA的孩子吗?
答案 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
可以提供帮助。