分支太早,该怎么办?

时间:2018-10-18 15:42:51

标签: git branch rebase

我在一个分支上一次提交。当我应该先切换回master时,我创建了一个新分支。

如何在不影响新分支最初创建的分支的情况下删除新分支的第一次提交?

实际上,我想将新分支的初始提交上移1。

1 个答案:

答案 0 :(得分:1)

重要提示:在使用rebase之前,请在存储库副本上测试命令,或者学习如何使用reflog撤消对存储库的更改。

您似乎正在描述这样的情况:

master
*
|
|  b1    b2
*  * --- *
| / 
|/
*

而您却想要

master
*
| * b2
|/
*
| * b1
|/
*

在这种情况下,请按以下步骤重新设置基准:

git rebase --onto master^ b1 b2

这会将所有提交从b2到达,但不是b1可以到达,并将它们植根于master之前的提交。请注意,您实际上只能从master开始倒数才能确定正确的陈述位置;您不能指望b1master的共同祖先提出的建议,因为提交不能跟踪他们的孩子,而只能跟踪其父母。