Acepto la respuesta aceptada, sin embargo en mi caso, se encontraron demasiados resultados para git fsck
. Esta solución es la que me ayudó a localizar los archivos perdidos:
Buscar una cadena en el archivo que falta (s):
grep -rin <string_in_missing_file> .git/
Por ejemplo:
grep -rin MyClassName .git/
Resultados de búsqueda:
.git//lost-found/other/3cfaa36226f52a5c1b38c2d2da3912656c998826:5:class MyClassName extends ParentClass
.git//lost-found/other/e7b8923de4afb230ad523b5b515f50cb9c624248:5:class MyClassName extends ParentClass
Donde resultados de la búsqueda son:
.git/<path_to_file>:<line_number_of_found_string>:<found_string_and_context>
continuación para restaurar el archivo:
git cat-file -p 3cfaa36226f52a5c1b38c2d2da3912656c998826 > ../<desired_file_path>/MyClassName.php
¿Alguna vez cometió y empujar algo? ¿Los commits están en github? – ThiefMaster
@TheifMaster: No. Pensé que debería incluir la confirmación inicial de github, y luego confirmar mis cambios. – Eric
No existe tal cosa como un "compromiso inicial". Un nuevo repositorio no tiene ningún compromiso. – ThiefMaster