我“不小心”向GitHub推送了一个提交。
是否可以删除此提交?
我想恢复提交之前的GitHub存储库。
我“不小心”向GitHub推送了一个提交。
是否可以删除此提交?
我想恢复提交之前的GitHub存储库。
当前回答
在GitHub Desktop中,您只需右键单击提交并将其还原,这将创建一个新的提交以撤消更改。
意外提交仍将在您的历史记录中(例如,如果您意外提交了API密钥或密码,这可能是一个问题),但代码将被还原。
这是最简单和最简单的选择,公认的答案更全面。
其他回答
为了方便还原,还有一种可能性(自提交以来的所有内容都将被删除):
git reset --hard commit_hash_you_want_to_return_to
例如,如果您想将分支重置为过去的提交,如71c27777543ccfcb0376dcdd8f6777df055ef479:
git reset --hard 71c27777543ccfcb0376dcdd8f6777df055ef479
下一步是将分支修改推送到源(远程回购):
git push --force
注意
请记住,如果其他贡献者正在与您的分支机构合作,他们可能会遇到冲突或其他问题,因为您正在更改分支机构的历史记录,但仅限于您,而不是那些已经使用您的分支的人。当心
你需要从你想要还原的提交中知道你的提交哈希。你可以从GitHub URL获取它,比如:https://github.com/your-organization/your-project/commits/master
假设提交的哈希(您要返回的位置)为“99fb454”(长版本“99fb 45413eb9ca4b3063e07b40402b136a8cf264”),那么您需要做的就是:
git reset --hard 99fb45413eb9ca4b3063e07b40402b136a8cf264
git push --force
删除最近的提交,保留已完成的工作:
git reset --soft HEAD~1
删除最近的提交,销毁您已完成的工作:
git reset --hard HEAD~1
要从远程存储库中删除提交,请执行以下操作:
git push -f origin last_known_good_commit:branch_name
要从本地存储库中删除提交,请执行以下操作:
git reset --hard HEAD~1
link
git push -f origin HEAD^:master
这应该会“撤销”推送。