Probar archivos sin cambios
En los pasos anteriores, vimos cómo funcionan git status
y git diff
cuando un archivo se ha modificado. Pero, ¿qué pasa si ejecutamos estos comandos cuando no hay cambios?
¡Vamos a averiguarlo! Asegúrate de estar en el directorio ~/project/my-time-machine
.
Primero, ejecuta git status
:
git status
Dado que no hemos realizado ningún cambio desde la última vez que verificamos el estado, deberías ver la misma salida que antes, lo que indica que message.txt
está modificado pero no preparado (staged):
On branch master
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: message.txt
no changes added to commit (use "git add" and/or "git commit -a")
Ahora, intentemos ejecutar git diff
de nuevo:
git diff
Deberías ver la misma salida de diferencias (diff) que antes, que muestra la diferencia entre el archivo actual y el último commit:
diff --git a/message.txt b/message.txt
index a1b2c3d..e4f5g6h 100644
--- a/message.txt
+++ b/message.txt
@@ -1 +1,2 @@
Hello, Future Me
+P.S. Hope you're doing well!
Esto confirma que git status
y git diff
muestran el estado actual de tu directorio de trabajo en relación con el último commit, independientemente de cuántas veces ejecutes los comandos sin realizar más cambios.
Ahora, preparemos (stage) los cambios que hicimos en message.txt
usando git add
:
git add message.txt
Ejecuta git status
de nuevo:
git status
La salida cambiará para mostrar que los cambios ahora están preparados (staged):
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: message.txt
Observa que git status
ahora muestra "Changes to be committed". Esto significa que los cambios están en el área de preparación (staging area), listos para el próximo commit.
¿Qué pasa con git diff
ahora? Intentémoslo:
git diff
Esta vez, git diff
no mostrará salida. ¿Por qué? Porque cuando ejecutas git diff
sin ningún argumento, compara tu directorio de trabajo con el área de preparación. Dado que acabamos de agregar los cambios al área de preparación, el directorio de trabajo y el área de preparación son idénticos.
Para ver la diferencia entre el área de preparación y el último commit, usarías git diff --staged
. Intentémoslo:
git diff --staged
Esto mostrará la diferencia (diff) de los cambios que actualmente están en el área de preparación, que es la línea que agregamos:
diff --git a/message.txt b/message.txt
index a1b2c3d..e4f5g6h 100644
--- a/message.txt
+++ b/message.txt
@@ -1 +1,2 @@
Hello, Future Me
+P.S. Hope you're doing well!
Comprender la diferencia entre git diff
(directorio de trabajo vs. área de preparación) y git diff --staged
(área de preparación vs. último commit) es un concepto clave en Git. Te ayuda a gestionar tus cambios antes de confirmarlos (commit).
Presiona q
para salir de la vista de diferencias (diff) si aparece.