我有一个本地 ref,其中包含我最近执行的一些分支git rebase
:
A---B---C---D master
\
E---F---G topic1
\
H---I---J topic2
这变成了:
A---B---C---D master
\
E'---F'---G' topic1
\
H'---I'---J' topic2
通过使用以下命令集:
git checkout topic1
git rebase master
git checkout topic2
git rebase topic1
问题?
git rebase --no-ff
为了跟踪我以前合并的所有分支,我不小心忘记了做。现在,我无法轻松地告诉(通过使用gitk --all
)我的合并发生在哪里。我知道它们发生在HEAD@{E}
和之间的某个地方HEAD@{J}
,但是没有单独完成每个提交,我就迷路了。
我决定做什么:
所以,我想我会按照这里git reflog
的建议使用,并在两个变基发生之前恢复到原始状态,然后按照我的建议尝试。 git reset --hard HEAD@{#}
git rebase branchname --no-ff
我的最终问题是这个(还有一些额外的):
我可以简单地回到第一次提交之前的最后一次提交,rebase
还是需要单独回滚每个变基?每个顶部分支是否都与我以前拥有的完全一样(显示我正在寻找的非快速转发合并)?我是否让这太难了/有没有更简单的方法来做到这一点?有什么是我忽略的吗?
谢谢。