git - 如何恢复对 GitHub 中存储库的推送

标签 git

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

最佳答案

git revert 命令不会重写历史,但会用新的提交移除提交中的更改。然后你所要做的就是再次 push 。这是建议的方法。

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

如果这是你自己的私有(private)github仓库,最后一次推送是你需要带走的(假设你还在同一个本地分支):

git reset --hard HEAD~
git push -f

如果不是最后一次推送,请参阅 git cherry-pickgit rebase 的手册页,让您的本地目录与您希望 github 匹配的目录看起来像执行 git push -f 之前。如果您不为 git push 提供 -f 选项,您将不会重写历史记录。如果尝试重写历史,任何推送都将失败。 -f 选项应该默认使用。

关于git - 如何恢复对 GitHub 中存储库的推送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19826574/

相关文章:

git - 应用 stash 提交 '...' 失败,原因是“正在应用...eclipse 中的 egit 错误

git - Git 中是否推送了远程地址?

git - 如果我想使用 gitignore 中的文件怎么办

git - 在命令行中编辑 Git 别名

git - 为什么 "git reset HEAD"不能撤消我未提交的、未暂存的更改?

ruby - GIt 部署 + 配置文件 + Heroku

git:如何在通过文件删除进行 rebase 提交时不删除文件

git - Visual Studio Team Services 上的文件不同步(Git 存储库)

git - Jenkins - 所有分支机构一份工作还是每个分支机构一份工作?

git - 如何更新GIT中的缓存?