Cómo deshacer cambios locales en un archivo específico [duplicado]
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?
No quieres git revert
. Eso deshace una confirmación anterior. Desea git checkout
obtener 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 restore
en 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