Probar con archivos no modificados
En los pasos anteriores, vimos cómo git show --name-only
y git diff-tree -r --name-only
muestran los archivos que se modificaron en un commit específico. Ahora, veamos qué sucede cuando ejecutamos estos comandos en un commit donde no se modificó ningún archivo (esto no es el caso de nuestro único commit, pero podemos simular la idea).
Dado que nuestro repositorio actual solo tiene un commit donde se agregó un archivo, ejecutar estos comandos en ese commit siempre mostrará message.txt
. Para ilustrar el concepto de mostrar solo los archivos modificados, imaginemos que tuviéramos un commit que no cambiara ningún archivo (esto suele suceder con los commits de fusión (merge commits) o los commits que solo cambian metadatos, pero para este ejercicio, nos centraremos en la salida cuando no se listan archivos).
Si fueras a ejecutar git show --name-only
o git diff-tree -r --name-only
en un commit que no modificó ningún archivo, la salida de la parte de los nombres de los archivos estaría vacía.
Volvamos a ejecutar los comandos que aprendimos para reforzar el concepto. Asegúrate de estar en el directorio my-time-machine
:
cd ~/project/my-time-machine
Vuelve a ejecutar git show --name-only
:
git show --name-only HEAD
La salida será similar a:
commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9
Author: Jane Doe <[email protected]>
Date: Mon Aug 7 10:00:00 2023 +0000
Send a message to the future
message.txt
Ahora vuelve a ejecutar git diff-tree -r --name-only
:
git diff-tree -r --name-only HEAD
La salida será:
message.txt
Ambos comandos muestran correctamente message.txt
porque ese archivo se introdujo en este commit. La idea principal aquí es que estos comandos están diseñados para listar solo los archivos que se modificaron (agregados, eliminados o modificados) en el commit especificado. Si un commit no cambia ningún archivo, estos comandos (específicamente la parte de la lista de archivos) no mostrarán nada.
Este comportamiento es importante para entender el alcance de los cambios introducidos por un commit. Te ayuda a identificar rápidamente qué partes de tu proyecto se vieron afectadas por un cambio en particular.