我提交了一些更改,并推送到 github 中的远程分支。 但后来我意识到我在提交中犯了一些错误,并推了 很多错误的文件。有没有办法恢复推送?
最佳答案
git revert
命令不会重写历史,但会用新的提交移除提交中的更改。然后你所要做的就是再次 push 。这是建议的方法。
如果你真的想让 github 看起来像一个特定的提交从未真正发生过,有一个方法,但要小心(特别是如果其他用户贡献给 github 存储库)。事实上,如果其他人使用这个 github 存储库,请立即停止并使用第一段中提到的方法。
如果这是你自己的私有(private)github仓库,最后一次推送是你需要带走的(假设你还在同一个本地分支):
git reset --hard HEAD~
git push -f
如果不是最后一次推送,请参阅 git cherry-pick
或 git rebase
的手册页,让您的本地目录与您希望 github 匹配的目录看起来像执行 git push -f
之前。如果您不为 git push
提供 -f
选项,您将不会重写历史记录。如果尝试重写历史,任何推送都将失败。 -f
选项应该不默认使用。
关于git - 如何恢复对 GitHub 中存储库的推送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19826574/