如何删除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>