我犯了一个错误,如下所述:
我在feature5
分支上,与master
相比,大约有200次提交,我从documentation
创建了一个本地分支feature5
。 (我忘了我不在master
)
然后,我承诺并将新的/更新的文档推送到origin/documentation
(我认为documentation
上origin
分支不存在。(很多项目......忘了我的心思)
然后,我意识到我推入了documentation
大约200个不属于这个分支的提交。我怎样才能还原呢?
我看了一下这个讨论,但是我在documentation
分支中很丢失,我不知道应该在哪里恢复,因为来自feature5
的提交太多了,我想恢复这个分支的最后一次推动,是否可能?或者在我的糟糕推动之前知道最后一次提交是什么?
另一个解决方案是删除origin/documentation
并基于master创建一个新的解决方案,因为master包含旧的origin/documentation
分支而没有糟糕的最后一次推送,但我想尝试保留如果可能,origin/documentation
分支 alive 。谁知道,也许我需要在几天/几周/几个月内做同样的事情^ _ ^
我也快速查看了git-revert
,但到目前为止我看不出它对我有什么帮助。
答案 0 :(得分:1)
如果我能正确理解您的问题,您可以使用documentation
参数将--onto
分支重新定位到master,从而解决此问题。
git rebase --onto origin/master HEAD~n
其中“n”是您在documentation
分支中实际关注的提交数。
当您推高新的-f
分支时,您需要使用documentation
标记。