如何删除Github上的最后n个提交和本地?

我试图删除我的一个GitHub仓库中的最后2个提交。 我试着按照这里的build议:git push -f origin HEAD ^^:master。 它似乎有效,最后两个提交被删除。

然后我用git rebase -i HEAD〜2从本地存储库中删除它们。 我删除了这些提交相关的行,并检查与GIT日志,他们被正确地删除。

之后,我在本地存储库中进行了一些更改,做了一个新的提交并推送到GitHub。 问题是,在我的GitHub帐户,我有我试图删除的前两个提交。

我认为这是在我的本地存储库的问题,因为如果我克隆我的Github存储库到我的本地,并做一些更改,当我推新提交这些旧的提交不会推送到GitHub。

任何想法?

要在本地删除最后两个提交,我build议使用:

git reset --hard HEAD^^ 

Rebase是一个完全不同的操作,在这里不会帮助你。

如果你想删除2(2)最后的提交,有一个简单的命令来做到这一点:

 git reset --hard HEAD~2 

您可以更改2您想要删除的任何数量的最后提交。

为了把这个改变推到远程,你需要用force-f )参数做一个git push

 git push -f 

不过,如果在提交后想要删除远程(Github)上的新提交, 则不build议使用-f--hard选项执行任何git命令。 在这种情况下,总是使用git revert

以下为我工作

 git reset HEAD~n 

它删除本地回购的最后n提交,因为HEAD^只删除一个。 如果您需要从远程删除这些更改,您可能需要强制推送,因为您将位于远程。

 git push -f origin <branch>