Pregunta Hard reset de un solo archivo


Actualmente tengo tres archivos modificados en mi directorio de trabajo. Sin embargo, quiero que uno de ellos se restablezca al estado HEAD.

En SVN usaría svn revert <filename> (seguido por svn update <filename> si es necesario) pero en git debería usar git reset --hard. Sin embargo, este comando no puede operar en un solo archivo.

¿Hay alguna forma de deshacerse de un solo archivo y sobrescribirlo con una nueva copia HEAD?


598
2017-08-22 12:12


origen


Respuestas:


Puede usar el siguiente comando:

git checkout HEAD -- my-file.txt

... que actualizará tanto la copia de trabajo de my-file.txt y su estado en el índice con eso de HEAD.

-- básicamente significa: tratar cada argumento después de este punto como un nombre de archivo. Más detalles en esta respuesta. Gracias a VonC para señalar esto.


1075
2017-08-22 12:16



Restablecer a la cabeza:

Para restablecer completamente un solo archivo a HEAD:

git checkout @ -- myfile.ext

Tenga en cuenta que @ es la abreviatura de HEAD. Una versión anterior de git puede no ser compatible con la forma abreviada.

Restablecer al índice:

Para restablecer completamente un solo archivo a la índice, suponiendo que el índice no está vacío; de lo contrario, HEAD:

git checkout -- myfile.ext

El punto es que para estar seguro, no quieres dejar de lado @ o HEAD desde el comando a menos que específicamente desee restablecer al índice solamente.


60
2017-12-03 07:39



puede usar el siguiente comando para restablecer un solo archivo

git checkout HEAD -- path_to_file/file_name

Enumerar todos los archivos modificados para obtener path_to_file/filename con el comando debajo

git status

0
2018-03-26 05:48