我正在尝试从我的 GitHub 存储库之一删除最后两次提交。我已经按照here的建议进行了尝试:
git push -f origin HEAD^^:master
。看起来它有效,因为最后两个提交被删除了。
然后我用
git rebase -i HEAD~2
从本地存储库中删除了它们。我删除了与这些提交相关的行,并使用 git log
检查它们是否已正确删除。
之后,我在本地存储库中进行一些更改,进行新的提交,然后推送到 GitHub。问题是,在我的 GitHub 帐户中,我尝试删除了前两次提交。
我认为问题出在我的本地存储库中,因为如果我将 GitHub 存储库克隆到本地并在此处进行一些更改,当我推送新提交时,这些旧提交不会推送到 GitHub。
要在本地删除最后两次提交,我建议使用:
git reset --hard HEAD^^
Rebase 是一个完全不同的操作,在这里对你没有帮助。
如果您想删除最后两(两)次提交,有一个简单的命令可以做到这一点:
git reset --hard HEAD~2
您可以更改要删除的任意数量的最后提交的
2
。
要将此更改推送到远程,您需要使用
force(
git push
) 参数执行 -f
:
git push -f
但是,我不建议使用
git
或-f
选项执行任何--hard
命令,如果远程(Github)上有新提交之后要删除此提交。在这种情况下,请始终使用 git revert
。
以下对我有用
git reset HEAD~n
它会从本地存储库中删除最后一个
n
提交,因为 HEAD^
仅删除一个。如果您需要从远程删除这些更改,您可能需要强制推送,因为您将落后于远程。
git push -f origin <branch>
如果您的更改尚未推送,只需输入命令即可。
git reset --hard HEAD~n
如果您已经推送更改,则需要运行以下代码。
git push origin HEAD --force
删除最后一次提交
要从 git 中删除最后一次提交,您只需运行
git重置——硬
HEAD^
如果您要从顶部删除多个提交,您可以运行
git重置--hard HEAD~2
删除最后两次提交。您可以增加数量以删除更多提交。
如果您想“取消提交”提交,但保留更改以进行返工,请删除
"--hard"
git 重置 HEAD^
这将从分支和索引中逐出提交,但保留工作树。
如果您想将提交保存到新的分支名称上,请运行
git 分支新分支名称
在进行 git 重置之前。
答案 - 这个要点答案帮助了我