我重定了我的分支的基础,这有把一些提交放在我自己的之上的效果。然后意识到我忘记了挤压一些提交,所以硬重置和挤压。现在我需要把这些提交回来。但重定基础再次告诉我,当前分支是最新的,即使它不是。有办法解决这个问题吗?
编辑:
有两个分支:a和B。两者都是从master分支出来的。两者都是master的最新版本。分支a有一些更改。我希望分支b也有这些更改。我将分支a的基础重定为b。最新的提交来自分支a。我本想压缩提交之前的三个提交。我硬重置为最新提交之前。然后我压缩了。现在我想以一种不会“当将分支B合并到主分支时,
我已经尝试了reflog
和git reset --hard HEAD@{n}
,但同样的问题:当前分支是最新的。
4条答案
按热度按时间gg0vcinb1#
在我的情况下,
--force-rebase
有帮助。我想,在你的情况下,它会是:mzillmmw2#
如果你有提交的id,你可以使用交互式重定基并手动添加它们。
假设您的原始分支是
master
,您可以执行以下操作:你会收到这样的信息:
您可以使用要添加的commitId添加另一个
pick bbbbbb
,如下所示如果要挤压提交,可以执行以下操作:
挤压操作会将较低的提交附加到前一个提交,即
00000
mwg9r5ms3#
如果你没有推送那个rebase,你可以硬重置到remote repository分支。
ndh0cuux4#
在我的例子中,问题仅仅是与origin/master相比master已经过时,所以我必须运行: