0

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.

NSM
  • 35
  • 2
  • 5
  • I guess you could always check the original revisions (they should still be on reflog, right?) – eftshift0 Nov 08 '18 at 20:02
  • Oh! You cleaned your reflog. That's sad. Do you have a remote where the old branches could be present? – eftshift0 Nov 08 '18 at 20:03
  • @eftshift0 : I think the git reflog expire command got rid of the original revisions. if I look in ./git/refs/original/refs/remotes/origin, there is nothing. – NSM Nov 08 '18 at 20:05
  • @eftshift0 : I can get a super old version of my file, but that's not helpful for me because I made a bunch of changes to it on my dev branch – NSM Nov 08 '18 at 20:06

0 Answers0