我的历史是这样的:
主人
\
A
\
O B
那么,解释一下:
master
开始的 A
分支A
开始的分支 B
(只有1个提交)我想要的是:
主人
\
A
\
O B
我所做的是:
1).
Git 收银台
Git rebase master
这导致了大量的冲突,经过一段时间的修正,以下历史出现了:
主人
\
A
这正是我想要的。
(我不知道 B
现在在哪里)
2).
在这之后,我做了很多壁球和改变了提交的顺序对 A
,使历史看起来像我想要的。
3).
现在,我还想做的是:
Git 收银台 B
Git rebase A
然而,这似乎不工作,我不知道为什么。如果我执行 git log
,我会看到在我执行步骤1之前就已经存在的提交。
此外,我还得到了在第1步中已经解决的大量冲突。我花了很多时间做这件事,不想再做了。
这个例子 建议使用 --onto
,我就是这么做的:
Git 收银台 B
Git rebase ——到 A 上
但是这会完全删除 B
上的提交,使得 A
和 B
指向相同的提交,即 A
上的最后一个提交。
我的问题是: 我怎样才能有效地将 B 从 A 重新定位,使它看起来像是 B 从 A 开始的? (一开始确实是这样的)。
我最好的猜测是我使用的 --onto
是错误的,或者我应该使用其他的东西(比如 cherry-pick
)。