首页 > 解决方案 > git force push 后文件丢失

问题描述

我做了一个新文件,我想把它推送到我的远程仓库。但我不小心强制推送新文件并覆盖它。所以,我错过了远程仓库中以前的文件,现在只有新添加的文件在我的远程仓库中可用。有什么办法可以恢复我丢失的文件?

标签: pythongitgithubgitlabrepository

解决方案


git有一个很大的撤消堆栈:git reflog

您可能可以在以下两个位置之一找到您“覆盖”的提交的 sha1:

  • git reflog:曾经是您正在处理的活动提交的所有提交的历史记录
  • git reflog origin/master(或git reflog origin/anybranch):您看过的所有地方的历史记录origin/master,每次跑步时都会更新git fetchgit pull

拥有此 sha1 后,您可以:

  • 在它之上重新设置:git rebase sha1
  • 获取文件的先前内容并对其进行处理:git checkout sha1 -- the/file
  • ...

推荐阅读