Digamos que tengo un archivo llamado a.txt
. Lo agrego al área de preparación y luego lo modifico. ¿Cómo podría devolverlo a la forma en que estaba cuando lo agregué?
80
git checkout a.txt
git restore a.txt
Git te dice esto si escribes git status
.
Antes de Git 2.23:
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: a
#
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: a
#
A partir de Git 2.23:
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: a
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: a
--
estado como dice.git checkout -- a.txt
La otra respuesta en esta página no tiene el
--
, y resultó en cierta confusión.Esto es lo que te dice Git cuando escribes
git status
:fuente
Desarmado de un archivo por etapas
Las siguientes dos secciones demuestran cómo trabajar con su área de preparación y cambios en el directorio de trabajo. Lo bueno es que el comando que usa para determinar el estado de esas dos áreas también le recuerda cómo deshacer los cambios en ellas. Por ejemplo, supongamos que ha cambiado dos archivos y desea confirmarlos como dos cambios separados, pero accidentalmente escribe git add * y los coloca en ambos. ¿Cómo puedes desmontar uno de los dos? El comando git status te recuerda:
Justo debajo del texto "Cambios a confirmar", dice use git reset HEAD ... para quitar el escenario. Entonces, usemos ese consejo para quitar la etapa del archivo CONTRIBUTING.md:
El comando es un poco extraño, pero funciona. El archivo CONTRIBUTING.md se modifica pero una vez más se quita la etapa.
fuente