Ejecutar git ls-tree
en una rama y un archivo
En este paso, exploraremos cómo ver el contenido de una rama específica y un archivo dentro de tu repositorio de Git utilizando el comando git ls-tree
. Este comando es útil para inspeccionar el estado de tu proyecto en un punto específico de la historia o en una rama diferente sin necesidad de cambiar a esa rama.
Primero, asegúrate de estar en el directorio de tu proyecto.
cd ~/project/my-time-machine
Ahora, creemos una nueva rama llamada feature-branch
y cambiemos a ella. Agregaremos un nuevo archivo allí.
git branch feature-branch
git checkout feature-branch
echo "This is a new feature." > feature.txt
git add feature.txt
git commit -m "Add new feature file"
Después del commit, deberías ver una salida similar a esta:
[feature-branch a1b2c3d] Add new feature file
1 file changed, 1 insertion(+)
create mode 100644 feature.txt
Ahora tenemos una nueva rama feature-branch
con un archivo feature.txt
que no existe en la rama master
.
Volvamos a la rama master
.
git checkout master
Deberías ver una salida que indique que has cambiado de rama:
Switched to branch 'master'
Observa que el archivo feature.txt
ya no es visible en tu directorio actual porque estás en la rama master
.
Ahora, usemos git ls-tree
para ver el contenido de la rama feature-branch
y específicamente del archivo feature.txt
desde la rama master
sin cambiar de nuevo.
La sintaxis básica de git ls-tree
es git ls-tree <tree-ish> <path>
. <tree-ish>
puede ser el nombre de una rama, un hash de commit o una etiqueta (tag). <path>
es la ruta al archivo o directorio que deseas inspeccionar.
Para ver el contenido del directorio raíz de la rama feature-branch
, puedes usar:
git ls-tree feature-branch
Deberías ver una salida similar a esta, que muestra los archivos en la raíz de feature-branch
:
100644 blob a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 feature.txt
100644 blob f9e8d7c6b5a4938271605f4e3d2c1b0a98765432 message.txt
Esta salida muestra el modo de archivo, el tipo de objeto (blob para archivo), el hash del objeto y el nombre del archivo.
Para ver los detalles de un archivo específico, como feature.txt
, en la rama feature-branch
, puedes usar:
git ls-tree feature-branch feature.txt
Deberías ver una salida similar a esta, específicamente para feature.txt
:
100644 blob a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 feature.txt
Este comando te permite echar un vistazo a otras ramas o commits pasados para ver el estado de archivos específicos sin cambiar tu directorio de trabajo actual. Esto es increíblemente útil para comparar archivos entre ramas o inspeccionar versiones históricas.