soft origin hard examples clean changes all git git-reset

origin - ¿Todavía es posible restaurar archivos borrados sin seguimiento en git?



git reset head all (6)

digamos que ayer hice algunos cambios en mi rama maestra, y olvidé agregarlos, confirmarlos. y por la mañana lo hice

git reset --hard

¿Es posible restaurar archivos borrados en esta situación?


( Nota : los pasos parecen haber cambiado un poco, ya que se publicó la respuesta aceptada. Pero la idea sigue siendo la misma ) .

Para agregar a la respuesta aceptada, pude recuperar mis archivos eliminados usando Webstorm 2016.

  1. Primero, perdí mi archivo haciendo una limpieza forzada usando git git clean -f .
  2. Para recuperarlo, fui a Webstorm e hice los siguientes pasos:

    • Vaya a la pestaña Proyecto para su proyecto, haga clic con el botón derecho para ir a ''Mostrar historial'' en ''Historial local''. ( Como se muestra en esta imagen. )

    • Una vez que se hace clic en ''Mostrar historial'', se puede ver el mensaje emergente con ''Cambio externo -> Revertir'' en él. Haga clic para revertir los archivos deseados a la derecha. ( Como se muestra en la imagen adjunta. )

    • Después de los 2 pasos anteriores, debería ver su archivo regresar en la pestaña ''Proyecto''. La ventana emergente ''Historia local'' mostrará algo así como en esta imagen adjunta. Revertido a cambio externo Obtendrá una opción para agregarlo a Git.

    • Para deshacer el seguimiento, simplemente haga un git reset HEAD <filename> desde la línea de comandos.


Algunos IDE mejores mantienen un registro de sus archivos como un historial local. Si eliminó archivos externamente (por ejemplo, git reset ), debería poder hacer clic en su IDE en el directorio principal y elegir "Comparar con el historial local".

Utilicé esta función con éxito en PHPStorm IDE cuando mis archivos sin PHPStorm fueron eliminados por alguna utilidad ...


No ................... No lo es.


No se puede acceder a la versión anterior de los archivos eliminados sin seguimiento de git, ya que, por supuesto, no existen. Los recuperaría de alguna copia de seguridad (¿quizás hay archivos de copia de seguridad ocultos dejados por ide / editor?), O, como alternativa, evitaría trabajar demasiado en ese sistema de archivos y comenzar a buscar herramientas de recuperación.


git reset --hard es un comando muy peligroso, así que ten cuidado cuando lo uses la próxima vez :)

Si no tiene ninguna confirmación para esos archivos, parece que no tiene ninguna posibilidad de restaurarlos.

De lo contrario, el comando reflog puede ayudarlo.


git reset --hard no eliminará los archivos sin git reset --hard . git clean will, sin embargo.

Sin embargo, si git add los archivos, no los git commit y luego ejecute git reset --hard los archivos se perderán.

Pero está bien, ya que se pueden recuperar, como se muestra en esta respuesta . (Bueno, hasta el próximo git gc ).