I agree with the accepted answer, however in my case there were too many results for git fsck
. This solution is what helped me locate the lost files:
Search for a string in the missing file(s):
grep -rin <string_in_missing_file> .git/
For example:
grep -rin MyClassName .git/
Search results:
.git//lost-found/other/3cfaa36226f52a5c1b38c2d2da3912656c998826:5:class MyClassName extends ParentClass
.git//lost-found/other/e7b8923de4afb230ad523b5b515f50cb9c624248:5:class MyClassName extends ParentClass
Where search results are:
.git/<path_to_file>:<line_number_of_found_string>:<found_string_and_context>
Then to restore the file:
git cat-file -p 3cfaa36226f52a5c1b38c2d2da3912656c998826 > ../<desired_file_path>/MyClassName.php