如何在GitHub中将推送恢复到存储库

use*_*464 6 git

我提交了一些更改,并推动了github中的远程分支.但后来我意识到我在提交中犯了一些错误,并且推了很多错误的文件.有没有办法恢复推动?

cfo*_*ish 12

git revert命令不会重写历史记录,但会通过新提交从提交中删除更改.那么你所要做的就是再次推动.这是建议的方法.

如果你真的想让github看起来像一个特定的提交从未真正发生过,有一种方法,但要谨慎(特别是如果其他用户贡献给github存储库).事实上,如果其他人使用这个github存储库,请立即停止并使用第一段中提到的方法.

如果这是您自己的私有github存储库,那么最后一次推送是您需要带走的(假设您仍在同一本地分支上):

git reset --hard HEAD~
git push -f
Run Code Online (Sandbox Code Playgroud)

如果它不是最后一次推送,请参阅手册页git cherry-pick,或者git rebase在执行之前让本地目录与您想要的github相匹配git push -f.如果您不提供-f选项git push,则不会重写历史记录.如果尝试重写历史记录,任何推送都将失败.该-f选项应该不会被默认使用.

  • 关于此方法需要注意的一件事:虽然这会从 GitHub 提交列表中删除提交,但它似乎并没有完全删除它。只要您拥有引用特定提交的 GitHub URL,即使它被“删除”,您仍然可以访问它。 (2认同)