Probar con diferentes estados de repositorio
En este paso, crearemos algunos cambios en nuestro repositorio para ver cómo git status --porcelain
los reporta. Esto te ayudará a entender los diferentes códigos utilizados en la salida porcelain.
Primero, asegúrate de estar en el directorio correcto:
cd ~/project/my-time-machine
Ahora, creemos un nuevo archivo no rastreado. Lo llamaremos notes.txt
:
echo "Some random notes" > notes.txt
Ejecutemos git status --porcelain
de nuevo:
git status --porcelain
Ahora deberías ver una salida similar a esta:
?? notes.txt
El ??
indica que notes.txt
es un archivo no rastreado. Git ve el archivo, pero actualmente no está gestionando sus versiones.
A continuación, modifiquemos el archivo message.txt
que confirmamos anteriormente. Agregaremos otra línea a él:
echo "Hello again, Future Me" >> message.txt
El operador >>
agrega el texto al archivo existente, en lugar de sobrescribirlo.
Ahora, ejecutemos git status --porcelain
una vez más:
git status --porcelain
Deberías ver una salida similar a esta:
M message.txt
?? notes.txt
La M
indica que message.txt
ha sido modificado. El espacio antes de la M
significa que el cambio está en el directorio de trabajo, pero aún no se ha preparado (staged). El ??
para notes.txt
permanece porque sigue siendo un archivo no rastreado.
Finalmente, preparemos (stage) el archivo message.txt
modificado utilizando git add
:
git add message.txt
Y ejecutemos git status --porcelain
por última vez:
git status --porcelain
La salida ahora debería verse así:
M message.txt
?? notes.txt
La M
ahora está en la primera columna, lo que indica que message.txt
ha sido preparado (staged) para confirmar (commit). El espacio en la segunda columna significa que no hay más modificaciones en el directorio de trabajo desde que se preparó. notes.txt
sigue siendo un archivo no rastreado.
Comprender estos códigos (??
para archivos no rastreados, M
en la segunda columna para archivos modificados pero no preparados, M
en la primera columna para modificaciones preparadas) es clave para interpretar rápidamente la salida de git status --porcelain
.