git - 如何从 git push -f 中恢复?

标签 git github git-push data-recovery

我在一个分支上做了一个 git push -f,现在丢掉了其他人的工作。

我可以在我的 github 中看到显示了其他人的工作(在事件中显示),但没有显示在远程分支中(我推送更改的地方)。不幸的是,我的本地仓库没有与远程同步。所以我本地没有其他人的代码。有什么办法可以把它送到我的本地并恢复吗?

最佳答案

在执行任何其他操作之前,请执行以下 3 个步骤 - 备份您的本地存储库,告诉其他人备份他的,然后备份远程存储库。没什么特别的,只需 Ctrl+C、Ctrl+V 即可。在您的整个项目上执行此操作,以便您也备份工作树。如果您不能直接访问远程服务器,一个 git clone 就足够了,尽管我更喜欢一个真实的目录副本。

完成后,其他人可以使用 git push -f 重新上传他的分支。如果他有新的提交,你将不得不弄清楚他最后推送了哪个提交,但我相当确定不会丢失任何实际提交。如果其他人执行了 git pull -f,即使这样他也可以使用 git reflog 来恢复他的本地分支。

由于您使用的是 Github,您可能还会看到 https://stackoverflow.com/a/35273807/492336 .显然有一个 Github 的事件 API 可能会有用。

关于git - 如何从 git push -f 中恢复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39491368/

相关文章:

git - 我们可以将 git 命令输出输入到另一个 git 命令吗

git - git-如何为git prune创建无法访问的提交?

git - "git push"和 "a pull request"有什么区别?

git 推送补丁到远程

ssh - gitlab 5.1 为新用户新添加的 ssh key 仅在一天后工作(推送/克隆)

git - 如何可靠地检查文件是否被 git 忽略?

git - 如何将 Git 存储库分支与 FTP 同步?

git - 删除贡献者的提交

Git 通过端口 443

git - 我可以 "uninitialize"一个 git 子模块吗?