¿Cómo deshacer git remove after commit?

He hecho un git rm -r path/ . Lo he comprometido, y después de eso he visto que no he hecho git rm --cached . He buscado volver, y también he hecho: git reset --soft 'HEAD^' 2 veces. Ahora veo que he vuelto a mi tree git, pero no veo los files eliminados …

 * <I_do_not_know_the_head> commit after removing files (1) * <I_do_not_know_the_head> commit before removing files (2) * <I_do_know_the_head> current commit (3) * ... other commits (4) 

Ahora estoy en (3) y no veo las confirmaciones (1) y (2) . Quiero regresar (1) y luego get los files eliminados. El problema es que creo que también hice otros cambios, no solo eliminé esos files.

¿Cómo volver al último compromiso y luego simplemente agregar los files eliminados? Por favor ayuda, no quiero perder compromisos.

--soft es tu problema. Eso deja el directory de trabajo en su estado actual. Quieres --hard .

 git reset --hard <commit_id_of_2> 

¿Por qué quiero –hard? No tengo la identificación de 2 ..

Usted quiere --hard porque eso mueve el directory de trabajo al estado de la confirmación a la que se está mudando.

Deberá usar git reflog para descubrir el ID de confirmación de la confirmación a la que desea volver. Hay un montón de preguntas aquí sobre cómo usar git reflog si git reflog --help no es suficiente.