Deshacer modificaciones de la copia de trabajo de un archivo en Git

Resuelto hasen asked hace 15 años • 15 respuestas

Después de la última confirmación, modifiqué varios archivos en mi copia de trabajo, pero quiero deshacer los cambios en uno de esos archivos, es decir, restablecerlo al mismo estado que la confirmación más reciente.

Sin embargo, solo quiero deshacer los cambios de la copia de trabajo de ese único archivo, nada más.

¿Cómo puedo hacer eso?

hasen avatar Mar 28 '09 12:03 hasen
Aceptado

Puedes usar

git checkout -- file

Puede hacerlo sin --(como lo sugiere nimrodm), pero si el nombre del archivo parece una rama o etiqueta (u otro identificador de revisión), puede confundirse, por lo que --es mejor usarlo.

También puede consultar una versión particular de un archivo:

git checkout v1.2.3 -- file         # tag v1.2.3
git checkout stable -- file         # stable branch
git checkout origin/master -- file  # upstream master
git checkout HEAD -- file           # the version from the most recent commit
git checkout HEAD^ -- file          # the version before the most recent commit

Más detalles incluidos basados ​​en comentarios.

Primero verifique las confirmaciones del archivo.

git log -- <filename>

Entonces puedes ejecutar esto

git checkout <sha-reference> -- filename

donde sha-reference es una referencia al sha de una confirmación, en cualquier forma (rama, etiqueta, padre, etc.

Brian Campbell avatar Mar 28 '2009 06:03 Brian Campbell

Solo usa

git checkout filename

Esto reemplazará el nombre del archivo con la última versión de la rama actual.

ADVERTENCIA: sus cambios se descartarán; no se conserva ninguna copia de seguridad.

nimrodm avatar Mar 28 '2009 05:03 nimrodm
git checkout <commit> <filename>

Utilicé esto hoy porque me di cuenta de que mi favicon había sido sobrescrito hace algunas confirmaciones cuando actualicé a drupal 6.10, así que tuve que recuperarlo. Aquí esta lo que hice:

git checkout 088ecd favicon.ico
neoneye avatar Mar 28 '2009 10:03 neoneye

Si su archivo ya está preparado (sucede cuando realiza un git add, etc. después de editar el archivo), elimine los cambios.

Usar

git reset HEAD <file>

Entonces

git checkout <file>

Si aún no está preparado, simplemente use

git checkout <file>
thanikkal avatar Jul 03 '2012 05:07 thanikkal