我“不小心”向GitHub推送了一个提交。
是否可以删除此提交?
我想恢复提交之前的GitHub存储库。
我“不小心”向GitHub推送了一个提交。
是否可以删除此提交?
我想恢复提交之前的GitHub存储库。
当前回答
在GitHub Desktop中,您只需右键单击提交并将其还原,这将创建一个新的提交以撤消更改。
意外提交仍将在您的历史记录中(例如,如果您意外提交了API密钥或密码,这可能是一个问题),但代码将被还原。
这是最简单和最简单的选择,公认的答案更全面。
其他回答
注意:请在下面的评论中看到gitrebase-i的替代方案-git reset—软头^
首先,删除本地存储库中的提交。您可以使用gitrebase-i来执行此操作。例如,如果是最后一次提交,可以执行gitrebase-i HEAD~2并在弹出的编辑器窗口中删除第二行。
然后,使用gitpushorigin+branchName--force强制推送到GitHub
有关更多信息,请参见Git Magic第5章:历史教训-然后是一些(例如,如果您想删除旧的提交)。
哦,如果你的工作树很脏,你必须先做一个git存储,然后再应用git存储。
git push -f origin HEAD^:master
这应该会“撤销”推送。
对于GitHub
在本地存储库中重置提交(HARD)创建新分支推送新分支删除旧分支(如果要删除主分支,请将新分支作为默认分支)
要从远程存储库中删除提交,请执行以下操作:
git push -f origin last_known_good_commit:branch_name
要从本地存储库中删除提交,请执行以下操作:
git reset --hard HEAD~1
link
删除最近的提交,保留已完成的工作:
git reset --soft HEAD~1
删除最近的提交,销毁您已完成的工作:
git reset --hard HEAD~1