我“不小心”向GitHub推送了一个提交。

是否可以删除此提交?

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


当前回答

在GitHub Desktop中,您只需右键单击提交并将其还原,这将创建一个新的提交以撤消更改。

意外提交仍将在您的历史记录中(例如,如果您意外提交了API密钥或密码,这可能是一个问题),但代码将被还原。

这是最简单和最简单的选择,公认的答案更全面。

其他回答

删除最近的提交,保留已完成的工作:

git reset --soft HEAD~1

删除最近的提交,销毁您已完成的工作:

git reset --hard HEAD~1

对于GitHub

在本地存储库中重置提交(HARD)创建新分支推送新分支删除旧分支(如果要删除主分支,请将新分支作为默认分支)

git push -f origin HEAD^:master

这应该会“撤销”推送。

要保留分支和合并结构,在执行重基时使用--preserve merges选项非常重要:

git rebase --preserve-merges -i HEAD^^

在终端上运行此命令。

git reset HEAD~n

您可以从本地repo中删除最后n个提交,例如HEAD~2。继续在存储库上强制git推送。

git push -f origin <branch>

希望这有帮助!