How do I recover a file deleted from git using filter branch and pushed to remote?

241 views Asked by At

I recently cleaned out several files from my repository using git filter branch. These are the instructions I followed : https://help.github.com/articles/removing-sensitive-data-from-a-repository/. After that I rebased my development branch so that new commits on that branch would not reintroduce any of the history. But in the process, I forgot that I had made changes to a file on this branch which I deleted on the filtered branch. So when I rebased the dev branch, that file disappeared. Is it possible to recover this file?

So far I have tried doing a git reflog to see which commit I could go back to that would have this file. When I used git reset --hard using an old commit hash, I get this error:

fatal: ambiguous argument '07a8efd': unknown revision or path not in the working tree

I believe this error could be because I had performed a filter branch and force pushed the filtered history back to remote. The cleanup instructions also had a

git reflog expire --expire=now --all

which also explains why that particular commit cannot be found. Is there anything I can do in this situation to recover this file?

EDIT: Since the rebase, I have made several more changes to the dev branch, so it would be very helpful to find an option that doesn't involve letting go of all this work.

0

There are 0 answers