协慌网

登录 贡献 社区

如何删除 GitHub 上的提交?

我 “意外地” 向 GitHub 推送了一个提交。

是否可以删除此提交?

我想恢复我提交之前的 GitHub 存储库。

答案

注意:请在下面的评论中查看git rebase -i替代方案 -

git reset --soft HEAD^

首先,删除本地存储库上的提交。你可以使用git rebase -i来做到这一点。例如,如果它是你的最后一次提交,你可以执行git rebase -i HEAD~2并删除弹出的编辑器窗口中的第二行。

然后,使用git push origin +branchName --force强制推送到 GitHub

请参阅Git Magic 第 5 章:历史课程 - 然后了解更多信息(例如,如果您要删除旧提交)。

哦,如果你的工作树很脏,你必须先做一个git stash ,然后再用git stash apply

git push -f origin HEAD^:master

这应该 “撤消” 推动。

如果它只是一个错误(也许你分叉一个回购,然后最终推到原来而不是一个新的),一个简单的还原,这是另一种可能性:

git reset --hard 71c27777543ccfcb0376dcdd8f6777df055ef479

显然,将该数字换成您想要返回的提交数。

再次按下后,一切都会被删除。为此,下一步将是:

git push --force