Git恢复推送到上一次推送

时间:2014-02-21 16:38:41

标签: git version-control github revert

我犯了一个错误,如下所述:

我在feature5分支上,与master相比,大约有200次提交,我从documentation创建了一个本地分支feature5。 (我忘了我不在master

然后,我承诺并将新的/更新的文档推送到origin/documentation(我认为documentationorigin分支不存在。(很多项目......忘了我的心思)

然后,我意识到我推入了documentation大约200个不属于这个分支的提交。我怎样才能还原呢?

我看了一下这个讨论,但是我在documentation分支中很丢失,我不知道应该在哪里恢复,因为来自feature5的提交太多了,我想恢复这个分支的最后一次推动,是否可能?或者在我的糟糕推动之前知道最后一次提交是什么?

Undoing a 'git push'

另一个解决方案是删除origin/documentation并基于master创建一个新的解决方案,因为master包含旧的origin/documentation分支而没有糟糕的最后一次推送,但我想尝试保留如果可能,origin/documentation分支 alive 。谁知道,也许我需要在几天/几周/几个月内做同样的事情^ _ ^

我也快速查看了git-revert,但到目前为止我看不出它对我有什么帮助。

1 个答案:

答案 0 :(得分:1)

如果我能正确理解您的问题,您可以使用documentation参数将--onto分支重新定位到master,从而解决此问题。

git rebase --onto origin/master HEAD~n

其中“n”是您在documentation分支中实际关注的提交数。

当您推高新的-f分支时,您需要使用documentation标记。