我最近使用 git filter 分支从我的存储库中清除了几个文件。这些是我遵循的说明:https ://help.github.com/articles/removing-sensitive-data-from-a-repository/ 。之后,我重新调整了我的开发分支,以便该分支上的新提交不会重新引入任何历史记录。但是在这个过程中,我忘记了我已经对这个分支上的一个文件进行了更改,我在过滤分支上删除了该文件。因此,当我重新设置 dev 分支时,该文件消失了。这个文件可以恢复吗?
到目前为止,我已经尝试做一个 git reflog 来查看我可以返回到哪个提交会有这个文件。当我使用旧的提交哈希使用 git reset --hard 时,我收到此错误:
fatal: ambiguous argument '07a8efd': unknown revision or path not in the working tree
我相信这个错误可能是因为我执行了过滤器分支并将过滤后的历史记录强制推送回远程。清理说明也有一个
git reflog expire --expire=now --all
这也解释了为什么找不到该特定提交。在这种情况下我能做些什么来恢复这个文件吗?
编辑:自从变基以来,我对 dev 分支进行了更多更改,因此找到一个不涉及放弃所有这些工作的选项将非常有帮助。