Cómo deshacer cambios locales en un archivo específico [duplicado]

Resuelto jww asked hace 9 años • 1 respuestas

Estoy intentando deshacer cambios locales en un archivo específico. No se ha comprometido nada.

Cuando quiero revertir todos los cambios, puedo realizar git revert --reset HEAD. Sin embargo, en este caso, no quiero revertir todos los cambios en todos los archivos.

No me resulta claro ni obvio cómo revertir solo un archivo, incluso después de leer la git-revert(3)página del manual:

NAME
       git-revert - Revert some existing commits

SYNOPSIS
       git revert [--[no-]edit] [-n] [-m parent-number] [-s] <commit>...
       git revert --continue
       git revert --quit
       git revert --abort
...

Esto es similar a Cómo revertir un archivo específico en una confirmación anterior en git , pero no se han realizado confirmaciones. Y a diferencia de OP, que quiere volver a una confirmación arbitraria, yo solo quiero que el archivo vuelva a la copia de MASTER.

En SVN, simplemente eliminaría el archivo en cuestión y luego realizaría un archivo svn update.

¿Cómo revierto los cambios en un solo archivo?

jww avatar Jul 08 '15 07:07 jww
Aceptado

No quieres git revert. Eso deshace una confirmación anterior. Desea git checkoutobtener la versión de git del archivo de master.

git checkout -- filename.txt

En general, cuando desee realizar una operación de git en un solo archivo, utilice -- filename.


  • Documentación de git-checkout
  • Documentación de git-revert

Actualización 2020

Git introdujo un nuevo comando git restoreen la versión 2.23.0. Por lo tanto, si tiene la versión git 2.23.0+, puede simplemente hacerlo git restore filename.txt, que hace lo mismo que git checkout -- filename.txt. Los documentos para este comando señalan que actualmente es experimental.

  • Documentación de restauración de git
mkasberg avatar Jul 08 '2015 00:07 mkasberg